能力值:
( LV2,RANK:10 )
|
-
-
26 楼
将DUMP出来的程序OEP改为97738
请问怎么修改?
问题以解决
用LordPE修改
已经学会脱 联众台球圣手v4.7试用版-ARM3.60双进程非标准壳了
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
谢谢,不错,学习
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
004C238A > \83BD D0F5FFFF 00 cmp dword ptr ss:[ebp-A30],0
/////下断,Shift+F9中断下来
把[ebp-A30]=[0012EB70]=00000005清0
按上面的说法0012EB70中的值应该是5呀,我的为什么是0000097呀?正常吗?
如果不正常,那估计是我哪里做错了吗?
我是先Patch,后下的断,对吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
004C238A > \83BD D0F5FFFF 00 cmp dword ptr ss:[ebp-A30],0
/////下断,Shift+F9中断下来
把[ebp-A30]=[0012EB70]=00000005清0
问题1:上面的意思我理解是将地址[0012EB70]内的值“5”改为“0”,对吗?
问题2:按上面的说法0012EB70中的值应该是5呀,我的为什么是0000097呀?正常吗?如果不正常,那估计是我哪里做错了吗?
问题3:我是先Patch,后给004C238A下的断,断下后将0012EB70的值改为0,后在004C2640处下断对吗?
下面的问题:
原文是:
3.寻找IAT
将DUMP出来的程序OEP改为97738,然后用OD载入,跟踪几步就可以找到IAT。
004063B8 - FF25 0CD24900 jmp dword ptr ds:[49D20C]
004063BE 8BC0 mov eax,eax
004063C0 - FF25 08D24900 jmp dword ptr ds:[49D208] ; kernel32.LocalAlloc
004063C6 8BC0 mov eax,eax
004063C8 - FF25 04D24900 jmp dword ptr ds:[49D204] ; kernel32.TlsGetValue
004063CE 8BC0 mov eax,eax
004063D0 - FF25 00D24900 jmp dword ptr ds:[49D200] ; kernel32.TlsSetValue
004063D6 8BC0 mov eax,eax
0049D13C 00 00 00 00 12 9D F6 77 ....?w
0049D144 80 B3 F5 77 A0 B2 F5 77 ?貅_蝉w
0049D14C 45 A7 E5 77 CB 15 E6 77 Eуw?骥
0049D154 72 AC E5 77 A0 60 E5 77 r?w_`鬻
。。。。。。
0049D884 CB 3D 40 77 8B 88 D1 00 ?@w??
0049D88C 58 0F DB 77 C3 88 D1 00 X埙??
0049D894 6B 65 72 6E 65 6C 33 32 kernel32
0049D89C 2E 64 6C 6C 00 00 00 00 .dll....
IAT地址49D13C 大小49D894-49D13C=758
重新载入主程序,BP DebugActiveProcess 中断后看堆栈:
0012DAC4 004C1BDB /CALL 到 DebugActiveProcess 来自 Ball4.004C1BD5
0012DAC8 00000F2C \ProcessId = F2C
上面说的“重新载入主程序,BP DebugActiveProcess 中断后看堆栈:”中的“重新载入主程序”的意思是载入刚DUMP且改过OEP的那个程序还是原文件的BALL4.EXE?????
上面的问题没解决,所以就加载的原程序(BALL4.EXE),按教程走到这里:
现在再用上述脚本转换为单进程。然后下断HE GetModuleHandleA SHIFT+F9 断下后堆栈如下:
0012ECC8 77C059FC /CALL 到 GetModuleHandleA 来自 msvcrt.77C059F6
0012ECCC 77BE31AC \pModule = "kernel32.dll"
。。。。。。
0012BF20 00BFC807 /CALL 到 GetModuleHandleA 来自 00BFC801
0012BF24 00C0D6C8 \pModule = "kernel32.dll"
0012BF28 00C0E67C ASCII "VirtualAlloc"
0012BF20 00BFC824 /CALL 到 GetModuleHandleA 来自 00BFC81E
0012BF24 00C0D6C8 \pModule = "kernel32.dll"
0012BF28 00C0E670 ASCII "VirtualFree"
0012BC98 00BE799B /CALL 到 GetModuleHandleA 来自 00BE7995
0012BC9C 0012BDD4 \pModule = "kernel32.dll"
堆栈如上变化时,取消GetModuleHandleA处断点,Alt+F9返回:
可是我按了好多次SHIFT+F9只找到CALL 到 GetModuleHandleA 来自 00BFC801和CALL 到 GetModuleHandleA 来自 00BFC81E,而且教程上写的是00BFC801和00BFC81E,我的机器确是00BAC801和00BAC81E,而且再向下按SHIFT+F9也没看到类似于CALL 到 GetModuleHandleA 来自 00BE7995的内容呀,不知道下一步怎么做,请热心人指点吧。
本人的系统是WIN2000
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
以上问题均已经解决,堆栈问题是因为软件已经使用过30次而我没有发觉,现在已经按照教程成功将该程序脱壳。
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
说实话我真的看不懂``比如说用什么软件做什么的写的不详细```
|
|
|