飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3561|回复: 3

跟着别人的教程却做不对,找不到错哪了

[复制链接]

该用户从未签到

发表于 2008-5-9 18:21:13 | 显示全部楼层 |阅读模式
首先运行:DUMP出来,再用PEID核心扫描为:Microsoft Visual C++ 6.0
知道是什么语言的就好办了,现在我们就开始脱壳
OD 载入 ,忽略所有异常,用Hideod 插件隐藏OD!

运行牛人们的脚本:Themida&WinLicenScript_1[1].91+.txt
当脚本提示:“程序发现被VM oeP,脚本patch了入口,现在可以在这里dump下程序补区段,修复代码!,你也可以选择[否]到普通方式修复!"
时,点取消,这里程序停在这里:

00986E04    68 D0DF1F5E     push    5E1FDFD0
00986E09    E9 65C70000     jmp     00993573
00986E0E    0000            add     byte ptr [eax], al
00986E10    0000            add     byte ptr [eax], al
00986E12    0000            add     byte ptr [eax], al
00986E14    0000            add     byte ptr [eax], al

现在Alt+M,在代码段下F2断点 到这里了

00F1A03B    FF33            push    dword ptr [ebx]          ; kernel32.GetVersion  //停在这里 (3)
00F1A03D    E9 53280B00     jmp     00FCC895
00F1A042    55              push    ebp
00F1A043    812C24 F150692B sub     dword ptr [esp], 2B6950F>
00F1A04A    8B1424          mov     edx, dword ptr [esp]
00F1A04D    55              push    ebp
00F1A04E    89E5            mov     ebp, esp
00F1A050    81C5 04000000   add     ebp, 4
00F1A056    83C5 04         add     ebp, 4
00F1A059    872C24          xchg    dword ptr [esp], ebp



为什么我一运行脚本,要么就提示  可能是老版本,要么就跑飞
这是为什么?/:002
换了好几个od了


没辙了,把别人的教程和程序放楼下,哪位帮忙看下是我这出问题了还是教程使用面不是很广

[ 本帖最后由 ggg520 于 2008-5-9 21:57 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2008-5-9 19:30:33 | 显示全部楼层
呵呵。不是OD 的问题。是你OD的脚本插件比较老了。换1.5后的吧。
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2008-5-9 19:50:01 | 显示全部楼层
OD脚本插件是1652

我重新下载的新版的。。。。。
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2008-5-9 21:59:08 | 显示全部楼层
首先运行:丝路飞人.exe,然后DUMP出来,再用PEID核心扫描为:Microsoft Visual C++ 6.0
知道是什么语言的就好办了,现在我们就开始脱壳
OD 载入 ,忽略所有异常,用Hideod 插件隐藏OD!

运行牛人们的脚本:Themida&WinLicenScript_1[1].91+.txt
当脚本提示:“程序发现被VM oeP,脚本patch了入口,现在可以在这里dump下程序补区段,修复代码!,你也可以选择[否]到普通方式修复!"
时,点取消,这里程序停在这里:

00986E04    68 D0DF1F5E     push    5E1FDFD0
00986E09    E9 65C70000     jmp     00993573
00986E0E    0000            add     byte ptr [eax], al
00986E10    0000            add     byte ptr [eax], al
00986E12    0000            add     byte ptr [eax], al
00986E14    0000            add     byte ptr [eax], al

现在Alt+M,在代码段下F2断点 到这里了

00F1A03B    FF33            push    dword ptr [ebx]          ; kernel32.GetVersion  //停在这里 (3)
00F1A03D    E9 53280B00     jmp     00FCC895
00F1A042    55              push    ebp
00F1A043    812C24 F150692B sub     dword ptr [esp], 2B6950F>
00F1A04A    8B1424          mov     edx, dword ptr [esp]
00F1A04D    55              push    ebp
00F1A04E    89E5            mov     ebp, esp
00F1A050    81C5 04000000   add     ebp, 4
00F1A056    83C5 04         add     ebp, 4
00F1A059    872C24          xchg    dword ptr [esp], ebp

此时 ds:[006BE924]=7C8111DA (kernel32.GetVersion),记住这个值
好了,继续F8一次,再在代码段下F2断点,来到这里:

0048B59C    A3 709D6B00     mov     dword ptr [6B9D70], eax                 ///停在这里 这里就是OEP了
0048B5A1    A1 709D6B00     mov     eax, dword ptr [6B9D70]
0048B5A6    C1E8 08         shr     eax, 8
0048B5A9    25 FF000000     and     eax, 0FF
0048B5AE    A3 7C9D6B00     mov     dword ptr [6B9D7C], eax
0048B5B3    8B0D 709D6B00   mov     ecx, dword ptr [6B9D70]
0048B5B9    81E1 FF000000   and     ecx, 0FF
0048B5BF    890D 789D6B00   mov     dword ptr [6B9D78], ecx
0048B5C5    8B15 789D6B00   mov     edx, dword ptr [6B9D78]
0048B5CB    C1E2 08         shl     edx, 8
0048B5CE    0315 7C9D6B00   add     edx, dword ptr [6B9D7C]
0048B5D4    8915 749D6B00   mov     dword ptr [6B9D74], edx
0048B5DA    A1 709D6B00     mov     eax, dword ptr [6B9D70]
0048B5DF    C1E8 10         shr     eax, 10
0048B5E2    25 FFFF0000     and     eax, 0FFFF
0048B5E7    A3 709D6B00     mov     dword ptr [6B9D70], eax
0048B5EC    6A 01           push    1
0048B5EE    E8 DDCE0000     call    004984D0
0048B5F3    83C4 04         add     esp, 4
0048B5F6    85C0            test    eax, eax
0048B5F8    75 0A           jnz     short 0048B604
0048B5FA    6A 1C           push    1C

这里就是OEP了 不过要补代码
这时在堆栈里找这个位置:

0012FF84   0012FFE0  指向下一个 SEH 记录的指针
0012FF88   0048FAFC  SE处理程序                                      (1)记这两个地址
0012FF8C   00684870  丝路飞人.00684870                               (2)
我们已经知道是Microsoft Visual C++ 6.0,好就一个Microsoft Visual C++ 6.0的OEP来补代码

push    ebp
mov     ebp, esp
push    -1
push      ?????                     ;  (1)
push      ?????                     ;  (2)
mov     eax, dword ptr fs:[0]
push    eax
mov     dword ptr fs:[0], esp
sub     esp, 58
push    ebx
push    esi
push    edi
mov     dword ptr [ebp-18], esp
call      ?????                     ;  (3)
xor     edx, edx
mov     dl, ah
mov     dword ptr [6B9D70], eax
好了补代码的位置如下:
0048B56D >/$  55            push    ebp
0048B56E  |.  8BEC          mov     ebp, esp
0048B570  |.  6A FF         push    -1
0048B572  |.  68 FCFA4800   push    0048FAFC                         ;  入口地址
0048B577  |.  68 70486800   push    00684870                         ;  SE 处理程序安装
0048B57C  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
0048B582  |.  50            push    eax
0048B583  |.  64:8925 00000>mov     dword ptr fs:[0], esp
0048B58A  |.  83EC 58       sub     esp, 58
0048B58D  |.  53            push    ebx
0048B58E  |.  56            push    esi
0048B58F  |.  57            push    edi
0048B590  |.  8965 E8       mov     dword ptr [ebp-18], esp
0048B593  |.  E8 425C387C   call    kernel32.GetVersion
0048B598  |.  33D2          xor     edx, edx
0048B59A  |.  8AD4          mov     dl, ah

在0048B56D新建EIP,DUMP,然后修复,只能手动找了,呵呵
还记得这个地址吗?ds:[006BE924]=7C8111DA (kernel32.GetVersion),在数据窗口中Ctrl+G 到006BE924
然后上下翻,找到IAT的起地址:006BE7A4  终地址:006BEA84  大小:2E0
修复时发现好些无效,直接剪掉就可以了,然后转存,可以运行!!!



程序  http://gggg6269.googlepages.com/slfr.rar

哪个朋友帮忙看下。。。。。。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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