公司同事在玩传奇,所以想破个传奇外挂,修改某些地方玩玩。
外挂是SVKP 1.3x -> Pavol Cerven的壳,于是按照FLY的教程尝试了一下。
由于本人是初学者,所以最终没有脱壳成功,而且中间有一些疑惑,请高手指教。
疑惑:
1. //EDX=0000108C + 003B0000=003B108C ★ 这就是OEP值 :-)
一开始以为edx=??+??,后来觉得这样理解不太对。 不知道0000108c是如何来的,估计是edx的值(后来在看雪论坛上下载到fly的教程中svktest的原始文件,试了一下,的确是edx的值)
2. 直接下断:HE 003B108C F9运行,中断在OEP处!
一开始不知道怎么输入这个命令,后来google查到了HE是command line中输入,尝试了一下,果然正确.
3. 因为有SvkpIAT的ImportREC插件,所以就偷点懒了,呵呵。
从程序找几个API调用:
003B8B68 FF25 5CD03B00 jmp dword ptr ds:[3BD05C]
003B8B6E FF25 60D03B00 jmp dword ptr ds:[3BD060]
…… ……
003B8C5E FF25 B4D13B00 jmp dword ptr ds:[3BD1B4]
003B8C64 FF25 B8D13B00 jmp dword ptr ds:[3BD1B8]
开始地址=3BD05C
结束地址=3BD1BC
可以看出其中有一些填充的无效数据。
一开始不会找这样的API调用,只找到类似
jmp dword ptr ds:[ecx*4+XXXXXX]
jmp dword ptr ds:[acx*4+XXXXXX]
jmp dword ptr ds:[dcx*4+XXXXXX]
这样的调用,然后用ImportREC尝试了一下,好像不行。
后来在看雪论坛上有人说他一般找IAT用ctrl-B,查找ff15或者ff25,尝试了一下,终于找到了。
查找OEP没有遇到什么困难,然后就是输入表了。结果遇到了暂时无法逾越的困难。
fly兄说,直接用importREC导入ollydbg中打开的dll文件,会导致importREC死掉,试了一下,的确这样。不过用DLL_Loader.exe(一开始不知道哪里下载,后来在看雪论坛的此教程中发现有下载)“打开”后,importREC找不到那个dll,点“载入”后,提示成功,连dll_loader.exe这个进程都找不到了。
不知道哪里出错了,请各位高手指教。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!