ggg520 发表于 2008-5-9 18:21:13

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

首先运行:DUMP出来,再用PEID核心扫描为:Microsoft Visual C++ 6.0
知道是什么语言的就好办了,现在我们就开始脱壳
OD 载入 ,忽略所有异常,用Hideod 插件隐藏OD!

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

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

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

00F1A03B    FF33            push    dword ptr           ; kernel32.GetVersion//停在这里 (3)
00F1A03D    E9 53280B00   jmp   00FCC895
00F1A042    55            push    ebp
00F1A043    812C24 F150692B sub   dword ptr , 2B6950F>
00F1A04A    8B1424          mov   edx, dword ptr
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 , ebp


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


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

[ 本帖最后由 ggg520 于 2008-5-9 21:57 编辑 ]

冥冥 发表于 2008-5-9 19:30:33

呵呵。不是OD 的问题。是你OD的脚本插件比较老了。换1.5后的吧。

ggg520 发表于 2008-5-9 19:50:01

OD脚本插件是1652

我重新下载的新版的。。。。。

ggg520 发表于 2008-5-9 21:59:08

首先运行:丝路飞人.exe,然后DUMP出来,再用PEID核心扫描为:Microsoft Visual C++ 6.0
知道是什么语言的就好办了,现在我们就开始脱壳
OD 载入 ,忽略所有异常,用Hideod 插件隐藏OD!

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

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

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

00F1A03B    FF33            push    dword ptr           ; kernel32.GetVersion//停在这里 (3)
00F1A03D    E9 53280B00   jmp   00FCC895
00F1A042    55            push    ebp
00F1A043    812C24 F150692B sub   dword ptr , 2B6950F>
00F1A04A    8B1424          mov   edx, dword ptr
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 , ebp

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

0048B59C    A3 709D6B00   mov   dword ptr , eax               ///停在这里 这里就是OEP了
0048B5A1    A1 709D6B00   mov   eax, dword ptr
0048B5A6    C1E8 08         shr   eax, 8
0048B5A9    25 FF000000   and   eax, 0FF
0048B5AE    A3 7C9D6B00   mov   dword ptr , eax
0048B5B3    8B0D 709D6B00   mov   ecx, dword ptr
0048B5B9    81E1 FF000000   and   ecx, 0FF
0048B5BF    890D 789D6B00   mov   dword ptr , ecx
0048B5C5    8B15 789D6B00   mov   edx, dword ptr
0048B5CB    C1E2 08         shl   edx, 8
0048B5CE    0315 7C9D6B00   add   edx, dword ptr
0048B5D4    8915 749D6B00   mov   dword ptr , edx
0048B5DA    A1 709D6B00   mov   eax, dword ptr
0048B5DF    C1E8 10         shr   eax, 10
0048B5E2    25 FFFF0000   and   eax, 0FFFF
0048B5E7    A3 709D6B00   mov   dword ptr , 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   0048FAFCSE处理程序                                    (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:
push    eax
mov   dword ptr fs:, esp
sub   esp, 58
push    ebx
push    esi
push    edi
mov   dword ptr , esp
call      ?????                     ;(3)
xor   edx, edx
mov   dl, ah
mov   dword ptr , 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:
0048B582|.50            push    eax
0048B583|.64:8925 00000>mov   dword ptr fs:, 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 , esp
0048B593|.E8 425C387C   call    kernel32.GetVersion
0048B598|.33D2          xor   edx, edx
0048B59A|.8AD4          mov   dl, ah

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



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

哪个朋友帮忙看下。。。。。。
页: [1]
查看完整版本: 跟着别人的教程却做不对,找不到错哪了