能力值:
( LV4,RANK:50 )
|
-
-
26 楼
[QUOTE] 最初由 fly 发布
Obsidium V1.1.1.4 脱壳――jingulong兄的UnPackIt.EXE
―――――――――――――――――――――――――――――――――
二、避开IAT加密,得到正确的输入表
重新载入unpackit.EXE,还记得刚开始在第5次003A381D异常时偶搜索的地址吗?003A64F0
003A54D9 F7F0 div eax//第4次异常 输入表处理
在第4次异常时偶们在 003A64F0 处下 内存访问 断点
然后Shift+F9运行,中断数十次就会来到003A64F0处,取消内存断点
003A64F0 66:F706 2000 test word ptr ds:[esi],20
//①、改为 test word ptr ds:[esi],8 ◆
003A64F5 74 59 je short 003A6550
//②、改为 jnz 003A6550 ◆
003A6517 FF75 18 push dword ptr ss:[ebp+18]
003A651A FF50 4C call dword ptr ds:[eax+4C]
003A651D 85C0 test eax,eax
003A651F 74 44 je short 003A6565
//③、改为 je 003A6550 ◆
003A653D FF76 04 push dword ptr ds:[esi+4]
003A6540 FF75 18 push dword ptr ss:[ebp+18]
003A6543 FF50 4C call dword ptr ds:[eax+4C]
003A6546 85C0 test eax,eax
003A6548 74 1B je short 003A6565
//④、改为 je 003A6550 ◆
003A654E 8907 mov dword ptr ds:[edi],eax
//正确的函数进入正确的地址
003A6550 83C6 08 add esi,8
003A6553 83C7 04 add edi,4
003A6556 FF4D 08 dec dword ptr ss:[ebp+8]
003A6559 75 95 jnz short 003A64F0//循环
fly大侠在我的机子上面这里下 内存访问 后中断不了呀,会出现内存00000008,无法访问,用Shift+F9也过不去哦,这是为什么呀?
|
能力值:
( LV9,RANK:3410 )
|
-
-
27 楼
1、在其他系统上不一定就是003A64F0段代码处理IAT,以你调试时看到的为准
2、注意你的调试环境
|
能力值:
( LV4,RANK:50 )
|
-
-
28 楼
我也是在XP环境下调试的,还有我调试的时候有很多代码和你的也是一样的,但就IAT的那个地方不行~!
|
能力值:
( LV4,RANK:50 )
|
-
-
29 楼
运行ImportREC,填入RVA=006162E4,Size=00000240,点“Get Import”,得到输入表。
有1个特殊函数:006163E4 ? 0000 003A6D54//为:GetCommandLineA
我在自己的机器上看了一下,当时edi的值为9f63f8,RVA是5f63f8,但得出的函数只有76个,改为5f62e0为145个,不知道这个62e4怎么计算得来的?还有size=240怎么计算??
还望赐教!
|
能力值:
( LV9,RANK:3410 )
|
-
-
30 楼
006162E4 是函数的起始RVA,240是大小,可以在转存里查看IAT的情况
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
好就一个字了得
|
|
|