您的位置:首页精文荟萃破解文章 → 手工脱ASPR壳的一点思路

手工脱ASPR壳的一点思路

时间:2004/10/15 0:56:00来源:本站整理作者:蓝点我要评论(0)

 我就简单的把脱壳的思路讲一下吧!
一,经过ASPR加壳的程序采用了以下几种反脱壳的手法:
1,破坏引入表。
2,把程序中的一部分代码移到壳的空间中。这个空间在WIN98上的地址在:80000000以上。在WINXP上的地址为:00F00000~01XXXXXX处。
3,花指令加异常等ANTIDEBUG手法,让跟踪的难度加大。
4,用注册码来解码,解码的数据在程序运行中要用到。没有正确的注册码就不可能解出正解的程序代码来。
二,对付上面几种反脱壳的方法:
1,修复引入表。
  如果一个程序未被加壳的话,它的API函数调用一般是这样子的:
  CALL 00412345
在00412345处的代码如下:
00412345      JMP [004XXXXX]   这个004XXXXX处保存的数据就是函数的地址。(一般是WINXP:FFXXXXXXXX,WIN98;BFXXXXXXXX),但是在被加壳的程序中这个数却不是API函数的地址,而是在壳的空间中。我们所要做的就是把004XXXXX中的数据还原。
  在加壳的程序中,它自己会模拟操作系统来重定位API函数的地址。一般来说要用到GETPROCADDRESSA这个函数来获得API函数的地址。在得到 了API函数的地址后,它并没有把函数地址填入到004XXXXX中去,而是把它保存到壳的空间中,并且把这个函数在壳中的地址填入到004XXXXX中去。我们要想知道API函数的正确名字就要拦截在程序调用GETPROCADDRESSA的地方。这个地方也就是在程序写引入表数据的地方。如何才能找到程序写引入表数据的地方呢?
  我们先在程序运行出现窗口后DUMP出主程序。反编译这个DUMP程序。找到JMP [004XXXXX]
     JMP [004XXXXX]
     JMP [004XXXXX]
     JMP [004XXXXX]
    。。。。。。。。,这样子的地方很好找的,一长串的JMP连着的就是了。我们记下004XXXXX中的值。回到OLLYDBG中载入加壳的程序,下断点
BPM 004X0000,接下来不停的按SHIFT+F9,
当我们停在MOV [EDX],EAX这样的指令处,看EDX中的值为004XXXXX。这个地方就是程序写引入表的地方了。这个时候EBP-101处就是函数名,
EBP+C处就是DLL名,我们可以用SMC的技术自己编一个程序来把函数名和DLL名保存下来,得到一个正确的引入表。(这个程序我已写好了。大家只要输入MOV [EDX],EAX处指令地址就可以得到正确的引入表。)原理就是这样子的。没有例子,如果大家对引入表有了解的话,应该容易理解。

二,对于程序代码在壳中的解决。
   我推荐大家用WINXP,正如前面所说的壳的空间在WINXP上在00FFXXXX处,在WIN98上在80000000处。我们可以把这部分的代码用LORDPE来DUMP出来,并把它贴到DUMP主程序中去,并把这并且部分代码的RVA改成00FFXXXX-400000。如果你是WIN98这样做就会程序非法,因为程序映射的空间太大。所以我推荐大家用WINXP或WIN2000。


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程