d78063346 发表于 2009-9-29 15:24:00

新人学习,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 编辑 ]

mantou 发表于 2009-9-29 18:54:13

等待您的教程,呵呵

d78063346 发表于 2009-9-30 14:55:22

强烈建议大家要顶贴 至少尊重下人家的辛苦

老万 发表于 2009-9-30 16:25:17

希望高手解释一下原因?

mantou 发表于 2009-9-30 19:35:21

很奇怪,我按您的思路,到00填充那步后,F9运行了几次,弹出检测到我的调试器了,郁闷

孤漂江湖狼 发表于 2009-9-30 23:06:05

我是壳盲,来膜拜了

lgjxj 发表于 2009-10-1 09:06:25

那我来告诉你,那个 RETN 24 是第二重的vm_retn ,第一重(很不专业的说法)是用来效验程序和解码

只用,第二重是用来加密 IAT 的,当它完成任务后,最后一次返回到OEP , 你这个例子 (我没下载,就

看你贴出的代码IAT 没加密 )

如果初学能自己溜到 OEP 的话,鼓励一下

d78063346 发表于 2009-10-1 14:21:16

楼上是高人呀

MOV 发表于 2009-10-1 17:17:58

学习中

hackwm 发表于 2009-10-4 00:19:16

希望能出个详细的视频教程
页: [1] 2 3 4 5 6
查看完整版本: 新人学习,VMProtect 1.70.4教程已经发出大家研究(第二课)