飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3131|回复: 3

[原创] ASPR1.2主程序简单分析

[复制链接]

该用户从未签到

发表于 2009-3-10 19:24:19 | 显示全部楼层 |阅读模式
半年没玩破解了,手都生了,赶上经济危机正郁闷中。无聊啊,继续从从基础开始学~~
ASPR 1.2的版本,大家都会脱,大概25次异常后,内存镜像F2下断,然后F9就到OEP ,然后就是转储修复IAT了,IAT有不少无效,等级1+插件搞定,有时候如果还有一个搞定不了就直接填GetProcAddress,最后修复的程序不能运行,对照原版跟一下,发现访问了壳中的地址,该处是一个ret指令,所以随便找个ret指令的地方将他写到对应的数据中,或者直接将那几个CALL  NOP掉。比起来还是第一种简单些。
我等菜鸟只知道怎么去脱不去分析他怎么会进步呢?就试着用OD跟了下。下面是粗略分析
OD载入后一般是见CALL就进,F8就可能会跑飞到异常处。其实这时壳实际已经做了很多工作。
F7跟进,经过耐心的单步跟踪一会就到了IAT处理的部分。
00DD7488    8BB5 612A4400   mov     esi, dword ptr [ebp+442A61]      
00DD748E    8B95 D8304400   mov     edx, dword ptr [ebp+4430D8]
。。。中间部分就是IAT处理部分代码,在数据窗口中可以看到API的地址
00DD759D    83C6 14         add     esi, 14                          
00DD75A0    8B95 D8304400   mov     edx, dword ptr [ebp+4430D8]
00DD75A6  ^ E9 EBFEFFFF     jmp     00DD7496     
前面可以参考UnPacKcN 小娃崽的文章。

先弄一份IAT数据放这里备份。(这里解出来的API只有44个,很多没解出来)   
不久就到了第一次异常。

看堆栈在SE句柄处下断后,忽略异常可以运行到那,然后SHE处理程序将EIP+2,再就是将调试寄存器清0。实际上EIP就成了下面的JMP的地址,所以在这里下断也可以断下来。
后面还有很多SHE,另外的没去仔细跟踪。继续跟踪,大概是跳过25异常后就到OEP了。这时候用ImportREC修复发现有很多无效。

从00466118开始很多无效(这里用等级可以修复)。可以下向该地址下内存写入断点,也可以对GetProcAddress下断,如果一开始程序载入的时候就下这个断是不行的。经过多次跟踪终于找到了大致位置。在第15次SHE处理程序里:

00DEF454的这个CALL就是关键点跟进去看看。
  
在内存中可以找到它留的很多记号,一般他读出来的结果就是5或1。如果 BL的值5就会加密,1不加密。后面的解释将API的字符串解到堆栈然后定位地址,再将字符串清0.
  

   
如果我们直接将jb让他跳下来不行的,他后面还要校验其他寄存器的值。我们这里可以把
00DEF4D5处的CALL NOP掉,然后F9 发现API地址全部就出来了,然后一路欢呼SHIFT+F9往下走。结果程序就挂了。程序有内存校验。想了下,把他NOP掉后,解出API后 到下一个异常前将这里NOP掉的CALL恢复。经过这样处理,程序正常到达OEP。
然后用ImportREC修复有一个无效,不需要用等级1修复。这个无效就是GetProcAddress.
这里解出来的API有357个,前面那些只有44个,我想应该有点问题哈。
  
简单的分析了下,水平有限,分析得不对的地方还希望高手多多指教。另外感谢hyperChem的指点和鼓励

[ 本帖最后由 hyperchem 于 2009-3-10 19:28 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

x
PYG19周年生日快乐!

该用户从未签到

发表于 2009-3-21 22:13:55 | 显示全部楼层
sf 啊/:good
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-6-19 22:55
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2009-3-24 18:27:03 | 显示全部楼层
    学习一下。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-9-15 11:39:47 | 显示全部楼层
    学习一下。。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表