能力值:
( LV9,RANK:3410 )
|
-
-
26 楼
1、可能你的输入表修复时没有处理好
2、去其他系统平台上运行看看
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
直接用LOADER不就可以了。
|
能力值:
( LV9,RANK:770 )
|
-
-
28 楼
学习学习
|
能力值:
( LV9,RANK:170 )
|
-
-
29 楼
学习
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
学习学习
|
能力值:
( LV9,RANK:250 )
|
-
-
31 楼
好文章,学习.
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
呵呵,正在学脱Ultra Protect,谢了。
|
能力值:
( LV8,RANK:130 )
|
-
-
33 楼
严格近按照脱文所述:
00720000 > 60 pushad
00720001 A1 3CB26200 mov eax,dword ptr ds:[62B23C]
00720006 A3 20757300 mov dword ptr ds:[<&KERNEL32.GetModuleHa>
0072000B A1 38B26200 mov eax,dword ptr ds:[62B238]
00720010 A3 1C757300 mov dword ptr ds:[<&KERNEL32.GetProcAddr>
00720015 E8 E1250100 call dumped-1.007325FB //运行到这里出错,跟进去!
0072001A E8 4B500100 call dumped-1.0073506A
0072001F C705 B4B76200 4BEE7200 mov dword ptr ds:[62B7B4],dumped-1.0072E>
00720029 - E9 26A6EFFF jmp dumped-1.0061A654
0072002E - 77 81 ja short dumped-1.0071FFB1
00720030 34 24 xor al,24
00720032 60 pushad
00720033 2C C7 sub al,0C7
00720035 00C3 add bl,al
00720037 68 4B402977 push 7729404B
0072003C 813424 486DC800 xor dword ptr ss:[esp],0C86D48
00720043 C3 retn
00720044 68 1E3C2B77 push 772B3C1E
00720049 813424 785FCA00 xor dword ptr ss:[esp],0CA5F78
00720050 C3 retn
00720051 68 E1EC3F77 push 773FECE1
00720056 813424 A8C9DE00 xor dword ptr ss:[esp],0DEC9A8
0072005D C3 retn
0072005E 68 04A04957 push 5749A004
00720063 813424 2888A820 xor dword ptr ss:[esp],20A88828
0072006A C3 retn
0072006B 68 904A646B push 6B644A90
007325FB E8 00DBFFFF call dumped-1.00730100
00732600 8D85 83FB4000 lea eax,dword ptr ss:[ebp+40FB83]
00732606 8BD8 mov ebx,eax
00732608 50 push eax
00732609 50 push eax
0073260A 8B85 20854100 mov eax,dword ptr ss:[ebp+418520] //这里:
//ss:[00737520]=0022BCF8
//eax=0072EB83 (dumped-1.0072EB83), ASCII "KERNEL32.DLL"
00732610 0FB600 movzx eax,byte ptr ds:[eax] //这里一过就出错:
//ds:[0022BCF8]=???
//eax=0022BCF8
00732613 83E8 33 sub eax,33
00732616 3D 99000000 cmp eax,99
0073261B 74 10 je short dumped-1.0073262D
0073261D 90 nop
0073261E 90 nop
0073261F 90 nop
00732620 90 nop
00732621 58 pop eax
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
果然牛啊,我只是观摩一下,不太懂
|
能力值:
( LV9,RANK:3410 )
|
-
-
35 楼
看样子是壳中壳没有处理好
你可以跟踪原版看这里是何值
|
能力值:
( LV8,RANK:130 )
|
-
-
36 楼
原版是这个样子的:
007325FB E8 00DBFFFF call ODT_-7.00730100
00732600 8D85 83FB4000 lea eax,dword ptr ss:[ebp+40FB83]
00732606 8BD8 mov ebx,eax
00732608 50 push eax
00732609 50 push eax
0073260A 8B85 20854100 mov eax,dword ptr ss:[ebp+418520] ; kernel32.GetModuleHandleA
//ss:[00737520]=77E12CD1 (kernel32.GetModuleHandleA)
eax=0072EB83 (ODT_-7.0072EB83), ASCII "KERNEL32.DLL"
00732610 0FB600 movzx eax,byte ptr ds:[eax]
//ds:[77E12CD1]=83
eax=77E12CD1 (kernel32.GetModuleHandleA)
00732613 83E8 33 sub eax,33
00732616 3D 99000000 cmp eax,99
0073261B 74 10 je short ODT_-7.0073262D
0073261D 90 nop
0073261E 90 nop
0073261F 90 nop
00732620 90 nop
00732621 58 pop eax
00732622 FF95 20854100 call dword ptr ss:[ebp+418520]
|
能力值:
( LV9,RANK:3410 )
|
-
-
37 楼
00720000 60 pushad
//保留壳EP原来的第一个字节
00720001 A1 3CB26200 mov eax,dword ptr ds:[62B23C]; kernel32.GetModuleHandleA
00720006 A3 20757300 mov dword ptr ds:[737520],eax
//[737520]->GetModuleHandleA
0072000B A1 38B26200 mov eax,dword ptr ds:[62B238]; kernel32.GetProcAddress
00720010 A3 1C757300 mov dword ptr ds:[73751C],eax
//[73751C]->GetProcAddress
00720015 E8 E1250100 call 007325FB
//重新获取壳中壳IAT
所以我才手动把GetModuleHandleA、GetProcAddress赋值过去
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
00734604 80BD 16564100 0>cmp byte ptr ss:[ebp+415616],0
0073460B 74 57 je short 00734664
//Magic Jump! 如果用ImportREC修复输入表,则可以修改这里为:jmp 00734664
0073460D 90 nop
0073460E 90 nop
0073460F 90 nop
上面的话有点迷惑。 magic jump 是什么意思 。
上面的je 是不是一定要改为jmp 呢?
|
能力值:
( LV9,RANK:3410 )
|
-
-
39 楼
Magic Jump只是一般习惯称呼
修改某些代码后就能避开壳对输入表函数的加密
这里是修改为jmp
直接用ImportREC就可以获取所有输入表函数
(EMbedded Protector接口除外)
|
能力值:
( LV8,RANK:130 )
|
-
-
40 楼
最初由 fly 发布 00720000 60 pushad //保留壳EP原来的第一个字节 00720001 A1 3CB26200 mov eax,dword ptr ds:[62B23C]; kernel32.GetModuleHandleA 00720006 A3 20757300 mov dword ptr ds:[737520],eax //[737520]->GetModuleHandleA ........
但是我以经照文章改了~~~为什么还是出错呢????
|
能力值:
( LV9,RANK:3410 )
|
-
-
41 楼
调试一下
00720015 E8 E1250100 call 007325FB
//重新获取壳中壳IAT
看看你脱壳后的程序是否正确获取了函数
|
能力值:
( LV8,RANK:130 )
|
-
-
42 楼
没有正确获取函数:
调试结果:
00720000 > 60 pushad
00720001 A1 3CB26200 mov eax,dword ptr ds:[62B23C]
00720006 A3 20757300 mov dword ptr ds:[<&KERNEL32.GetModuleHa>
0072000B A1 38B26200 mov eax,dword ptr ds:[62B238]
00720010 A3 1C757300 mov dword ptr ds:[<&KERNEL32.GetProcAddr>
00720015 E8 E1250100 call dumped-1.007325FB //运行到这里出错,跟进去!
0072001A E8 4B500100 call dumped-1.0073506A
0072001F C705 B4B76200 4BEE7200 mov dword ptr ds:[62B7B4],dumped-1.0072E>
00720029 - E9 26A6EFFF jmp dumped-1.0061A654
007325FB E8 00DBFFFF call dumped-1.00730100
00732600 8D85 83FB4000 lea eax,dword ptr ss:[ebp+40FB83]
00732606 8BD8 mov ebx,eax
00732608 50 push eax
00732609 50 push eax
0073260A 8B85 20854100 mov eax,dword ptr ss:[ebp+418520] //这里:
//ss:[00737520]=0022BCF8
//eax=0072EB83 (dumped-1.0072EB83), ASCII "KERNEL32.DLL"
00732610 0FB600 movzx eax,byte ptr ds:[eax] //这里一过就出错:
//ds:[0022BCF8]=???
//eax=0022BCF8
00732613 83E8 33 sub eax,33
原程序为:
007325FB E8 00DBFFFF call ODT_-7.00730100
00732600 8D85 83FB4000 lea eax,dword ptr ss:[ebp+40FB83]
00732606 8BD8 mov ebx,eax
00732608 50 push eax
00732609 50 push eax
0073260A 8B85 20854100 mov eax,dword ptr ss:[ebp+418520] ; kernel32.GetModuleHandleA
//ss:[00737520]=77E12CD1 (kernel32.GetModuleHandleA)
eax=0072EB83 (ODT_-7.0072EB83), ASCII "KERNEL32.DLL"
00732610 0FB600 movzx eax,byte ptr ds:[eax]
//ds:[77E12CD1]=83
eax=77E12CD1 (kernel32.GetModuleHandleA)
|
能力值:
( LV8,RANK:130 )
|
-
-
43 楼
Magic Jump只是一般习惯称呼
修改某些代码后就能避开壳对输入表函数的加密
这里是修改为jmp
直接用ImportREC就可以获取所有输入表函数
(EMbedded Protector接口除外)
EMbedded Protector接口,该怎么获取输入表函数
|
能力值:
( LV9,RANK:3410 )
|
-
-
44 楼
ACProtector的EMbedded Protector接口只有2个函数
程序修复中已经说明如何做了
上面出现的问题说明你脱壳程序的输入表都没有修复!
[62B23C]; kernel32.GetModuleHandleA是程序的输入表函数
修正Import Table RVA=0022B000了没有?
|
能力值:
( LV8,RANK:130 )
|
-
-
45 楼
最初由 fly 发布 ACProtector的EMbedded Protector接口只有2个函数 程序修复中已经说明如何做了
上面出现的问题说明你脱壳程序的输入表都没有修复! [62B23C]; kernel32.GetModuleHandleA是程序的输入表函数 ........
Import Table RVA=0022B000
填在什么地方呀???
|
能力值:
( LV8,RANK:130 )
|
-
-
46 楼
BaseOfCata
我已经改了~~还是老样子!
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
这个壳实在是太强了。我学习脱含这个壳的程序。
试着去脱另一个程序的壳。
可是这个还是有点容易脱。但我也脱不了。
另一个程式的壳也是这个,但版本可能变了。
因为在 做 输入表的函数输出时,程序来了个来回,使第一次的函数被第二次的函数给复盖了。
晕倒。。。。。
照瓢画葫芦也没有画成。。。。。。
继续学习中。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
最初由 好好学习2 发布
Import Table RVA=0022B000
填在什么地方呀??? ........
是在Directory Table内的ImportTable的RVA吧。
|
能力值:
( LV9,RANK:3410 )
|
-
-
49 楼
最初由 好好学习2 发布 Import Table RVA=0022B000 填在什么地方呀??? ........
Here
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
|
|
|