-
-
[旧帖]
关于内存断点的问题
0.00雪花
-
发表于:
2013-8-27 15:13
5059
-
有某个软件,启动时根据当前机器的硬件情况生成一个机器码,然后将该机器码发送至网络服务器验证,获取该机器码的权限,返回之后获得软件的正常功能使用与试用次数等等.我一直致力于找到该软件是在哪里生成的机器码,但没找到.我的思路是,我已经有了一个购买了正版的机器码,那么如果我能更改机器码,我就可以在任意机器上运行啦.
现在,我根据某些线索终于到了机器码在内存中存放的地址.
首先我尝试直接在OD中更改它,然后运行,软件界面的确显示的是我更改之后的机器码,但是当我试用软件功能时,软件就会提示连接不上服务器,如果不改内存,就正常试用.请问下可有大神知道这是为何?
另外,我发现每次这个存放机器码的内存地址都不一样的,比如这次是0420A678,下次可能就是042FA678,再下次可能就是0426A678,等等,但末尾都是A678.经过别人的指点说是"每次载入的时候都会不同的。对于这样的可能是对某个[ebp+xxxx]这样的堆栈变量的赋值和比较来控制的"。那这样的话如果我想下内存写入断点,找出程序将机器码写入内存的关键地方,但现在我根本不知道在哪个内存地址下,请问这种情况该如何是好?最后还有个弱智问题,之前我尝试在0420A678内存处下断点,但提示失败,貌似是程序刚载入时,内存还没分配到那里?可是内存断点又只能使用一次,无法保存.
恳请大神指点一二,感激不尽!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课