textbox

IT博客 联系 聚合 管理
  103 Posts :: 7 Stories :: 22 Comments :: 0 Trackbacks
 Armadillo 是一套强大的软件保护系统,可以为您的程序添加装甲般的外壳。通过艺术性的加密、数据压缩和其它安全特性保护您的程序不被盗版和破解。Armadillo 可以让您在5分钟内为您的程序设计并添加一套完全的软件保护和注册系统,并且不需要您修改任何程序代码!Armadillo 支持所有语言编写的32位 Windows EXE 文件。
  Armadillo is a powerful software protection system. It wraps around your program like an armored shell, defending your work from pirates and program crackers with state-of-the-art encryption, data compression, and other security features. It allows you to design and add a complete software protection and registration-key system to your existing programs in five minutes or less, with no changes to your program's code! And it works with any language that produces a 32-bit Windows EXE file.
  目前可支持多国语言
  1、Nanomites Processing
  Nanomites是Armadillo嵌入子进程的INT 3中断,虽然在GETRIGHT FINAL版本里没有使用nanomites 保护,但是却在CRUSADER写的教程里的beta版本里用了。 可能有 50, 100甚至 200个INT 3,它们被放入了子进程的第一个section ,以阻止子进程脱离父进程运行。INT 3中断替代了原始文件的条件跳转。所以每当父进程接收到INT 3中断,它就到存放跳转类型的report中去,看一下标志以决定是否跳转,然后测算出新的EIP,改变到子进程中去然后继续运行直到下一个 INT 3。
  问题是我们不知道每个跳转和INT 3的对应关系,所以我们将要在本篇教程中学习如何patch它。 首先我们要学如何手动patch它,然后(在第二篇教程中) 我们将要学习如何让计算机自动逐行patch它。
  2、输入表乱序(Import Table Elimination)
  Import Table Elimination一般是把输入表放在壳申请的内存处并且乱序处理。
  对于输入表乱序,
               解法:
                    1).写代码重新排序;
                    2).直接用ImportRec“创建新的IAT”功能来构造新的输入表。
  3、代码拼接(Code Splicing)
  Armadillo会把程序中的部分代码挪移到壳申请的内存段运行,普通dump会导致此部分代码丢失,
                 解法:
                     1).修改VirtualAlloc返回地址,使其把挪移的代码放到无用的壳区段;
                     2).Dmp后补上那个包含挪移代码的壳申请的内存段 ;
                     3).
使用ArmInline工具来修复这部分代码;
     
  4、内存校验(Memory-Patching Protections)
  内存补丁保护可以防止攻击者使用Loader改变更程序的代码。付费版本的内存保护将会比Demo版更强大。如果您使用此选项,您必须使用CopyMem-II或Debug-Block,否则本项保护将无法启用。
  使用内存保护时应注意,不要在程序里添加自修改代码,否则程序将会自动退出。
posted on 2010-04-06 12:27 零度 阅读(120) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。