hgame_week3_re_wp

这篇博客详细介绍了hgame week3的逆向工程分析过程。作者首先通过搜索关键函数,逐步找到check函数,揭示了程序逻辑中隐藏的加密和判断机制。在动态调试过程中,发现了程序的真实流程和加密规则。通过对加密函数的分析,得出了解密flag的方法,并提供了解密脚本。此外,还简要探讨了使用OLLVM编译的程序,通过分析位运算确定了解密策略。
摘要由CSDN通过智能技术生成

hgame week re

hgame week3 的re,
链接: https://pan.baidu.com/s/1jdYHLzhz3ygEtW0NPgqQsw 密码: w03a

文章目录

hidden

首先搜索字符串找到输出正误的函数,然后查看调用找到check函数:


程序逻辑比较清晰,就是在encode函数中加密,然后查看是否和两个值相等,

然后进入函数后看到对函数的处理只在后半段,前面只是处理数据,但是我们动调会发现函数会莫名的在前面这个函数中间跑飞:

动调时最关键的在于这个函数内部的这个调用:

步入调用内部,然后似乎还是一个比较完整的函数,一直找到后面的ret位置,然后按P, 分析为函数,还可以f5


得到一个加密的位置,而且最后调用的函数为我们直接输出正误的那个函数,所以这个程序前面静态看到的都是假的,真正的流程是运行到这个位置,然后直接判定了flag正误, 我们前面动调在这里推出也是因为程序已经运行完了。

然后看下程序的逻辑中间的几个运算基本可以直接反着写, 动调发现需要注意一个&0xff的操作,然后key是flag最后的两位,直接断到判定位置发现flag的加密是19×2的形式,避开了最后两位,所以我们后面的data中的对应flag位置就是key, 可以直接取出来。

然后就得到解密脚本:

key = [0x7d,0x65]
cipher_data = [8896099
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值