吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1799|回复: 7

写入内存值的代码怎么找?

[复制链接]
57907103 发表于 2018-6-4 23:39 | 显示全部楼层 |阅读模式

本站严厉禁止求脱求破行为(包含无自我分析直接求思路),如发现此类求助主题请点击“举报”,让我们共同维护优质的学习环境!


30HB
软件地址:https://pan.baidu.com/s/17zqRSN8a_gRYD5isJSzf7g
FZ主程序已经脱壳,主程序有文件名校验,不用改他名字即可,仅这个EXE文件脱壳后打开游戏可正常使用。
两个.king的dll文件:scHelper.king、scHelper2.king在这两个文件脱壳后,再次运行FZ并打开游戏即会提示“请将360保险箱等暂时退出…………”,不能正常使用,用OD分析如图:
360保险箱断点.png

就是00401F39这个关键跳的原因。
通过对比分析发现未脱壳前00401F39的跳转是实现了的,但是两个.KING文件脱壳后这个跳转就不实现了。影响这个跳转的是EDX,而EDX又是【EAX+1744】这个地址给的,在数据窗口中跟随这个内存地址发现未脱壳前是1,脱壳后是0,(猜测可能是有段代码对scHelper.king、scHelper2.king这两个文件的大小或者其他点进行了校验,相等就返回真1,不相等就返回假0)但是怎么才能找到是哪儿的代码给这个内存地址赋值的呢,我用了内存断点和硬件断点均断不下来。这个内存的地址是01A0A748,好像又是sckhook.dll里面的地址。

图中的那个跳转直接改了是没有用的,因为他好像还有其他代码调用了内存地址的值,必须要等于1他才能读取两个文件里面的内容,所以需要找到是哪儿写入的

请了解的朋友指点下,谢谢!

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2018-6-5 08:10 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
瘾君子 发表于 2018-6-5 11:44 | 显示全部楼层

你直接写1不就完了,干嘛要找到他在哪里写入
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 57907103 发表于 2018-6-5 21:41 | 显示全部楼层

杀毒.png 补上杀毒图片,,说明:软件不一定用我提供的地址,FZ、游戏、窗口化工具都可以自行百度搜索下载
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 57907103 发表于 2018-6-5 21:44 | 显示全部楼层

本帖最后由 57907103 于 2018-6-5 22:36 编辑

补图重复了,把这个删除了吧,抱歉。。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 57907103 发表于 2018-6-5 21:52 | 显示全部楼层

瘾君子 发表于 2018-6-5 11:44
你直接写1不就完了,干嘛要找到他在哪里写入

非常你的回复!
我的主要目的不是直接改那个1,因为这个软件我分析了,他在网络验证时也会使用同样的方法,通过判断某个内存地址的值是1还是0进行下一步的动作。但同一个地址他可能有时是1,有时又必须是0,所以无法采取直接写死为某一个固定的1或者0,要根据恰当的时机写合适的值。所以我推测他写入的这个内存值只是在某一条件成立后的一句代码而已,他应该还有其他代码(即程序还干了其他的事),所以我必须要找到他写入的代码。欢迎朋友们提供思路,谢谢!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Zixue 发表于 2018-6-6 00:46 | 显示全部楼层

EAX+1744这里是0或者1决定程序的流程。 根据你截图的流程。EAX是从EDX赋值来的。所以你需要跟到EAX的值,然后偏移是1744,就是最终的地址,然后搜索一下。有多少个地方调用了这个EAX+1744, 来决定你想要实现的赋值。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 57907103 发表于 2018-6-6 23:47 | 显示全部楼层

Zixue 发表于 2018-6-6 00:46
EAX+1744这里是0或者1决定程序的流程。 根据你截图的流程。EAX是从EDX赋值来的。所以你需要跟到EAX的值,然 ...

EAX的值就是存域名“www.minyao.com”的地址,你说的方法对某些软件是适用的,但是这个软件不适用,根据分析我推测这个软件部分可能是这样的:

定义全局整数变量a、b

接收封包判断子程序()
  如果(a<4 )
         a=a+1
               如果(a=1 )
                      如果(接收封包1正确)
                              获取当前时间计算出一个数据(只是一个假设,各种情况都可能),用于第2次接收封包返回信息进行对比      
                               启动时钟2周期事件
                               …………‘这里还有很多其他功能方面的子程序调用
                               b=1
               如果(a=2 )
                      如果(接收封包2正确)'这里要调用上面计算出的数据
                              获取当前时间计算出一个数据(只是一个假设,各种情况都可能),用于第3次接收封包返回信息进行对比      
                             将scHelper.king注入游戏进程  
                               …………‘这里还有很多其他功能方面的子程序调用
                             b=1

               如果(a=3 )
                      如果(接收封包3正确)'这里要调用上面计算出的数据
                              获取当前时间计算出一个数据(只是一个假设,各种情况都可能),用于第4次接收封包返回信息进行对比      
                             将scHelper2.king注入游戏进程
                               …………    ‘这里还有很多其他功能方面的子程序调用
                             b=1
               如果(a=4 )
                      如果(接收封包4正确)'这里要调用上面计算出的数据
                              注册热键()   
                               …………    ‘这里还有很多其他功能方面的子程序调用
                             b=0

                             a=0

时钟1周期事件()
    如果(a<4 )
    检测游戏进程()
           如果游戏进程存在
                   如果(b=1)
                             发送封包子程序()
    ……
   否则……


时钟2周期事件()
    检测游戏进程()
           如果游戏进程存在

…………



=========================
我目前找到的点都是在他的时钟周期事件里面,他判断某一变量等于1时做的事,但是他真正的流程里面还有很多其他功能代码,比如4此判断接收封包后,他都要执行一些其他操作,而将某一变量赋值为1和0供时钟周期事件使用仅是他的一句代码而已,软件要真正的执行需要满足:1、4次判断接收正确后所执行的各子程序;2、时钟周期事件里面变量成立时所执行的子程序。

所以给变量赋值使程序执行仅满足了其中一个条件,还有其他很多子程序未执行,无法达到逆向。

这FZ除了登录发送封包外,它在打开游戏后还会连续发送4次封包,而每次发送都会根据前一次发送后收到的封包是否正确进行判断,正确就会向ebx+340写入1,然后用时钟检测这个地址是1还是0,如果是1就接着发送第二个封包,这样一直发送完4个封包后,如果接收的封包都正确FZ就激活了


我的思路是写死他的发送封包,包括里面的随机密钥,然后本地服务器返回正确发送封包对应的接收封包。这样再对比关键段的跳转流程是否一致,如果一致,理论上来说FZ就成功转本地了



吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表