能力值:
(RANK:260 )
|
-
-
2 楼
问题不描述清楚,别人是无法给你帮助的。
1.你说的dat文件是程序运行时释放的还是原来就存在的?
2.你说的注册后就调用dat文件,这个调用是怎么理解,是说dat文件实际是PE文件,而调用它里面的函数吗?
3.你说的分离出来是什么意思,是说用它直接运行吗?
我以前弄过个游戏,叫luxor大概,如果我没理解错你的话,你的情况跟这个游戏应该一样。
我说下我分析这个程序的思路过程:
主程序luxor.exe启动后先判断是否注册,没有则弹出注册窗口和广告。点一下“试玩”,它会释放出一个文件,文件名记不清了,反正是个可执行文件,不过加密过了。
然后主程序用CREATE_SUSPENDED标志去调用CreateProcess,然后利用返回的句柄操作子进程的内存,将一块代码读出进行解密,之后再写回去,然后再ResumeThread让游戏恢复运行。
只需要在ResumeThread处下断点,然后直接将子进程DUMP出来,此时已经解码完成了。
我这个游戏这时已经能玩了,而且再也不用注册了。
如果别的程序此时不能玩,则需要修复一下输入表了,具体操作就不讲了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
那个dat文件本来就存在的
如果注册了就直接运行那个.dat文件
分离出来就是让它直接运行
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
没看出来有什么区别,那你就仿照注册后的行为,直接运行它呗。
|
能力值:
(RANK:260 )
|
-
-
5 楼
照这么说那个.dat文件是一个pe文件了,那么你试着直接运行它,看看它有什么反应,或者错误提示。
这样也能猜测得到一些信息。
你也可以直接用调试器加载那个.dat文件,看看它有什么玄机。
|
|
|