新人学习,VMProtect 1.70.4教程已经发出大家研究(第二课)
脱壳VMProtect 1.70.4这个程序我是脱了,但是其他的程序还是会被检测到希望高手能赐教,教程今天先不写,先发个求助贴吧!明天再写具体脱壳方法。先占位置哦,嘻嘻 我先把原程序和我脱好的传上来,高手莫笑哦!我晕哦 文件传不上我用网盘吧! 如有违规说下哦!不要扣我分,我会及时改的!有时不在论坛Q上联系我,240720033 求脱的别来 本人很菜下载:试炼.rar
下载:Ollydbg.rar
配置要用这个具体什么原因我也不清楚我反正我用这个配置是有用的
StrongOD.dll 我用的是海风最新版的 下载地址在论坛有 自己去搜下
设置如下:
http://4p.qupan.com/p4/jpg/2009-9-30/13/www.qupan.com_5748250_01.jpg?xja2xsfgvzz3hp45210tflag=1254290210opin=7c5b5c1564f77439ae61301f1838de38.jpg
加载程序停在:
http://4p.qupan.com/p4/jpg/2009-9-30/13/www.qupan.com_5836968_02.jpg?owhng1avnxug2345210tflag=1254290259opin=3386167c64926563b774277cdd684f52.jpg
F8一下到代码call004F98EF
看寄存器:
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_034984_03.jpg?5tgizm2ofjkkabrd210tflag=1254290388opin=f0d57a79b5d7f7ef521ccbf086ad8161.jpg
ESP为红色 0012FFC0右键在数据窗口中跟随
数据窗口显示如下:
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_235906_04.jpg?ildcrtuinai34y55210tflag=1254290497opin=7567e103c14db143f475f19983f294d9.jpg
右键-断点-设置硬件访问断点-Dword-在用断点命令 he GetThreadContext
按F9 我这里是4次 大家注意看寄存器 显示以下就停
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_68453_05.jpg?532j0045ko5dh245210tflag=1254290710opin=19dedf8aa00ba83c6bf7eb5c21d9fe33.jpg
看代码窗口:
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_77500_06.jpg?bnzatfqfpnqnc0vc210tflag=1254290769opin=56bbd543dd645c678e0224e51026505e.jpg
按F8到 retn 8这个位置
看寄存器 EDI 为0012F790 在这里右键数据窗口中跟随
看数据窗口:
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_1323265_08.jpg?kvlw03me5uyt5h3j210tflag=1254291145opin=53fc6b919defcecaa31f972741c1e408.jpg
把这段的数据
0012F7947C839725kernel32.GetThreadContext
0012F7980012FFC0
0012F79C00000000
0012F7A000000000
0012F7A4FFFF0FF0
全选 右键-二进制-使用00填充--下面按F9运行
我这里要按20多下,到哪里停看下图:
http://4p.qupan.com/p4/jpg/2009-9-30/14/www.qupan.com_161578_09.jpg?slhe3z45yseluvbd210tflag=1254291317opin=4296470a63dc0904648385f6146711ca.jpg
00479498 C2 2400 retn 24
这里用F7进去 进去后就是OEP了
0047949B C1CE 1A ror esi, 1A
0047949E E8 EA0D0000 call 0047A28D
004794A3 66:8945 00 mov word ptr , ax
004794A7 51 push ecx
004794A8 9C pushfd
004794A9 9C pushfd
004794AA 8D6424 20 lea esp, dword ptr
004794AE^ E9 C2EDFFFF jmp 00478275
=======================================================F7进来后显示
00408E87 6A 58 push 58
00408E89 68 003B4200 push 00423B00
00408E8E E8 ED290000 call 0040B880
00408E93 33F6 xor esi, esi
00408E95 8975 FC mov dword ptr , esi
00408E98 8D45 98 lea eax, dword ptr
00408E9B 50 push eax
00408E9C FF15 0CD14100 call dword ptr ; kernel32.GetStartupInfoA
00408EA2 6A FE push -2
00408EA4 5F pop edi
这个就是OEP啦没啥子技术含量啊 大家见谅 还有关于我上面说的情况谁能告诉我 为什么有的程序会被ANTI
关于修复 已经不用说了吧 上节已经讲过 不懂的多问问前辈们
上面有很多我也不是很懂 希望大牛们能指点迷津 为何 00479498 C2 2400 retn 24到这里F7看什么地方能知道呢?
[ 本帖最后由 d78063346 于 2009-9-30 14:25 编辑 ] 等待您的教程,呵呵 强烈建议大家要顶贴 至少尊重下人家的辛苦 希望高手解释一下原因? 很奇怪,我按您的思路,到00填充那步后,F9运行了几次,弹出检测到我的调试器了,郁闷 我是壳盲,来膜拜了 那我来告诉你,那个 RETN 24 是第二重的vm_retn ,第一重(很不专业的说法)是用来效验程序和解码
只用,第二重是用来加密 IAT 的,当它完成任务后,最后一次返回到OEP , 你这个例子 (我没下载,就
看你贴出的代码IAT 没加密 )
如果初学能自己溜到 OEP 的话,鼓励一下 楼上是高人呀 学习中 希望能出个详细的视频教程