首页
社区
课程
招聘
[旧帖] (已解决)一个程序可以在执行入口点(OEP)代码前检测是否被修改过? 0.00雪花
发表于: 2011-1-18 13:28 5822

[旧帖] (已解决)一个程序可以在执行入口点(OEP)代码前检测是否被修改过? 0.00雪花

2011-1-18 13:28
5822
前几天本人参照 vnekrilov 破解的 sdl passolo 2011 补丁技术制作了 sdl passolo 2011 SP2 补丁,但非常奇怪的是:
一、如果在 OD 中直接运行补丁过的 sdl passolo sp2 的主程序 pls.exe,破解正常;用 dUp2 等制作成 loader 加载 pls.exe 也正常;
二、如果通过 OD 将补丁过的 pls.exe 利用“复制到可执行文件”后生成的程序 pls.exe,则破解后存在某些问题,加密狗破解没问题,不成功的地方主要是翻译项数好像只能是 4 个以下,其后翻译后还是为原来的字符串,并且按 ctrl+u 恢复为原始字符串也不成功,始终还是翻译后的字符串;具体详见 http://bbs.hanzify.org/read-htm-tid-67076.html 中的问题 4。
三、用 OD 加载破解过的 pls.exe 运行,同样存在上述“二”所述的问题;

之前未验证“三”所述的问题,我以为是仅仅直接执行破解后的 pls.exe 才存在此问题,因此得出的结论是,由于正常情况下运行程序双击程序,因此其父进程为 explorer.exe,当然不包括通过 cmd.exe 或 service.exe 作为父进程的程序,所以在调试中分析与父进程相关的 API 以及 explorer.exe 字符串,没有找到,后来在发现用 Od 加载破解后的程序 pls.exe 也同样存在此问题;

因此综合上面的三点,本人在猜想,既然在 OD 中补丁后运行程序或将补丁后的字节制作为 loader 运行均正常,而唯独补丁后生成的程序无论直接双击运行还是加载到 OD 中运行均不正常的现象,以我目前所掌握或能猜想的情况,只有是该程序在执行到 OEP 代码前就已经对程序是否被修改过进行了校验,并在何处设置了修改标记或比较是否被修改过的手段。

但一个程序在执行 OEP 代码之前能校验代码是否被修改过这种技术吗?如果可能,请给位大侠提供点具体的示例。

crack 工作这么久了,第一次遇到补丁后生成的程序竟然和 OD 中补丁后运行部一致的情况。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 111
活跃值: (61)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
虽然已解决帖子中所提及的问题,但尚未完全研究清楚它的最终原理。
2011-1-24 13:52
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
既然解决了 我来友情接分。
ps。会不会是tls在作怪呢?
参考这个帖子:http://bbs.pediy.com/showthread.php?t=108195&highlight=
2011-1-24 14:13
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
qq不錯哦感謝大大
2011-1-24 14:48
0
游客
登录 | 注册 方可回帖
返回
//