能力值:
(RANK:260 )
|
-
-
2 楼
先用ImportRec追踪一下那几个无效指针,如果追踪无效,用OD看一下那些函数指针指向的函数,手动还原相应的函数指针,再用ImportRec来试试。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
简单方法用ImportRec 插件修复
根本的办法修改 magic jmp
0040D41E /0F84 CF000000 je 0040D4F3 这句就是magic jmp
修改为 jmp 0040D4F3 然后IAT就全部有效。
上面的地址是98记事本的地址 地址因程序不同而异!
看你的OEP 就是记事本的 所以地址应该相同
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
楼主这个ImportREC汉化的实在。。。
我指汉化者。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
把东东传上来看看吧 有实例比较好
|
能力值:
( LV5,RANK:60 )
|
-
-
6 楼
如Peeler大所说,找MagicJUMP~~~~~~
不想手动,更直接的办法,找个插件。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢版版啊,我用ImportRec已经追踪过了,都是无效!用OD手动还原函数指针,我还不清楚,指导啊,谢谢了~~
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢peeler,不过我用ImportRec 插件修复,用修复1进行修复,都未修复,用ImportREC自带插件修复,也是无效。
至于说得修改magic jmp,我找了许久没找到地方,我把文件放到上面来,大大指导一下啊!
呵呵,这个是98记事本加的壳,最近都是在上面加了在练习的脱~~~
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
额,上传个插件给你吧,放到ImpREC 的Plugin目录下
5个0.98版本和1个0.99版本的。
ImpREC显示无效,右键,使用插件跟踪
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
谢谢Ella,都用了试了一下,修复了不少,不过还是有许多无效的!
|
能力值:
( LV5,RANK:60 )
|
-
-
11 楼
程序不大的话上传下。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
OD 载入程序
下 bp VirtualAlloc+5 断点,SHIFT+9 5次后,alt+F9返回
修改 0040D41E /0F84 CF000000 je 0040D4F3 这句magic jmp
改为 jmp 0040D4F3
然后在打开内存镜像 在00401000代码段下F2中断
shift+F9 到达OEP
最后dump 修复IAT
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
已经传了,在顶楼~~
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
|
能力值:
( LV5,RANK:60 )
|
-
-
15 楼
OD载入,
ALT+M
00405000 00001000 tElock 数据 -------------下断,SHIFT+F9
到:
0040CD3C AC lods byte ptr [esi]
0040CD3D F6D8 neg al
0040CD3F FEC0 inc al
CTRL+B
查找 0AF6
来到:
0040D346 0AF6 or dh, dh ------- 这个是查找的
0040D348 895424 1C mov dword ptr [esp+1C], edx
0040D34C 61 popad
0040D34D C685 D7CC4000 0>mov byte ptr [ebp+40CCD7], 0
0040D354 74 24 je short 0040D37A---------------------把这个je改成JMP
0040D356 80EC 08 sub ah, 8
0040D359 B0 01 mov al, 1
0040D35B FECC dec ah
ALT+M,
00401000 00004000 tElock 代码---------------下断,SHIFT+F9来到OEP
004010CC 55 push ebp
004010CD 8BEC mov ebp, esp
004010CF 83EC 44 sub esp, 44
004010D2 56 push esi
004010D3 FF15 E4634000 call dword ptr [4063E4] ; kernel32
别关OD,LordPE dump文件,ImportRec输入OEP,自动查找,显示全部有效,修复。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
再次谢谢peeler,刚去试了一下,
本来是在异常状态下进行脱壳的,没有忽略所有异常,
结果下了bp VirtualAlloc+5 断点,狂按SHIFT+F9 30多下都没特殊反映,
后来改了忽略所有异常才行,按了5次,返回,修改了magic jmp,
代码段下了了断点,dump了,
但是在修复IAT 时,还是遇到了无效函数,不过少多了,只有七个了,
然后用Ella提供的几个插件修复了一下,搞定六个,还有各一始终都不行,
还是不能修复,没办法,我把这个指针删除了,在修复一下,可以了,文件也能打开了。
查壳是没有,不知道这样行不行!
这方法能用其他上面么,下bp VirtualAlloc+5,是什么原理啊, 内存镜像断点在之后下啊?
修改magic jmp有什么规律,怎么确定啊?谢谢peeler指导啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
[QUOTE=peeler;558313]具体操作看演示动画
tElock 0.98b1演示动画[/QUOTE]
再次谢谢,peeler,录像很详细,又学了不少东西,呵呵~~
还有那个bp VirtualAlloc+5 是什么方法啊,为什么啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
再谢谢Ella,用这个搞定的函数全都有效,修复成功!
就是不知道原理,方法能通用么,和peeler找的magic jmp位置不同啊,
方法是什么啊?下断点的位置也不同数据断点,一般不是资源断点么?
还有为什么查找0af6?
谢谢解答哈~~~
|
能力值:
( LV8,RANK:130 )
|
-
-
19 楼
奇怪..bp VirtualAlloc+5可以拦下来,bp VirtualAlloc就直接挂掉..
Ella用的是二次镜像法找的OEP
找0af6好像是去掉crc检验,呵呵,也不知道对不..
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
这个学习下.
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
CTRL+B 查找 0AF6 是网上流传的一种方法!
bp VirtualAlloc+5是我个人总结的一个方法,因为查找二进制时间长了可记忆性较差!
这个壳子检测VirtualAlloc断点 +5就是为了逃避检测。
你还有无效函数 可能是按的次数多了一次,第一次出现返回地址0040D41E的时候就alt+F9
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
谢谢peeler多多指导啊,学习了,呵呵!
又学了kanxue老大的,内存断点找OEP,二次多次内存断点还是清楚多了~~
哈~
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
magic jmp 怎么找呢?大大们?
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
[QUOTE=;]...[/QUOTE]
其实用ImportRec修复时,无效指针可用等级3修复,剩下没修复的指针剪切就可以了。
|
能力值:
( LV5,RANK:60 )
|
-
-
25 楼
可以是可以,能找齐为什么不找齐呢。
如果遇到别的壳,等级三修复无效,剪切后无法正常运行,怎么办。
那不是根本解决问题的办法。
|
|
|