170713 逆向-填数游戏

博主回顾了一次填数游戏的逆向工程挑战,最初遇到输入限制的问题,后来通过IDA分析找到数独题目的内存位置。尽管仍不清楚输入逻辑,但了解到输入应按9*9行列顺序连续输入。明日计划涉及apk破解的复现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1625-5 王子昂 总结《2017年7月13日》 【连续第284天总结】
A. CISCN 结合WP再战RE
B. 这么久之后完整的wp终于出来了,回过头再做一遍之前的re
首先是最早放出的填数游戏
wp上直接写出了数独题目,然后在网上找到了做数独的地方再输入即可
我当时做的时候是卡在输入的地方,OD动态调的时候只有ASCII为9-12的输入能通过、继续循环,就一直纠结在那里。没有看别的函数。
现在想想一个地方卡着的话应该再看看别的地方,当时不应该执着于一处。
再打开IDA解析以后,从头分析立马发现了问题:
__main();
Sudu::Sudu(&v14);
Sudu::set_data((int)&v14, (Sudu *)&_data_start__, v5);

这里很明显就是初始化的地方,查看set_data轻松地发现&_data_start就指向了内存中的数独题目,写一个IDC把它跑出来:这里写图片描述 这里写图片描述
网上找一个数独解答就能得到解
但是现在再看仍然理不清输入的逻辑。在set_data函数中可以明白当输入为0时直接跳过该赋值,否则将1-9的值传入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值