忘记是什么时候写的了,有笔记和视频录像,没地方放录像,就先发个笔记吧,当然是带狗脱。
SHK 1.2 dll脱壳
------------------------------------------------
在第1节就一直看jmp跟进 看到第一个call就下断,F9运行到此,回车跟进call,再看jmp跟进,如此循环跟,一直到第2节
到第2节后,向下找标志
cmp dword ptr [XXXX],0
je short XXXX
jmp XXXX 回车跟进,向下找第一个call下断,F9运行到此,回车跟进,象第1节那样继续,一直到第3节;
到第3节后,向下找标志
mov dword ptr [XXXX],0
cmp dword ptr [XXXX],0
je short XXXX 在这里F2下断,F9运行到此,取消断点
jmp XXXX 回车跟随
跟随后,在下面的第一个call下断点,向上找一点点,在
pop eax
pop ecx 在这里点右键,查找命令cmp dword ptr [ebp-106C],0
pop edi
Call XXXX
找到后,F2下断,F9运行到此,把下一行jnz处直接NOP掉,然后向下找,有点远,找到
and eax,XXXXXXXX XX数有点大;找到这,向下找
mov eXx,dword ptr [ebp-14]
cmp eXx,dword ptr [XXXX] 看右边提示列里有一个系统函数的注释,可以在数据窗口中查看这个系统函数
jb或ja XXXX 这里改成jmp,F2下断后运行到此,取消断点,按F9运行
会在Call处,取消断点跟随,之后又是jmp和call断下后跟进循环,一直到第4节
第4节,就是我们要找的OEP了,用LoadPE进行Dump。
IAT可以从数据窗口里找,也可以进OEP下面的第一个call里去看,有call系统函数地方,进去看,在数据窗口里查看寻找连续的IAT即可。用ImportREC修复IAT输入表(里面几个不能识别的函数Cut掉就行)。
SHK好象没有对dll的文件进行IAT加密,找IAT时,是在第2个call里进去看;
下面修复重定位表
记下ImageBase地址
10000000
01E30000
用ReloX修复重定位表
完工。。。。