XMAN【我真的好菜-同pizza师傅修炼笔记二】Dragon Quest

本文分享了一种使用C++解决难题的思路,通过分析和动态调试,去除混淆的代码,理解算法并提供了解密脚本。过程中提到了对未初始化变量的处理和对C++分片操作的理解。
摘要由CSDN通过智能技术生成

前言

题目本身用C++写的,很多人做出来了,会用工具也不算很难。
pizza师傅提供了另一种解决思路

分析

pingtools的方法就不说了,可以参考我的这篇文章 或者有个github项目叫做pinCTF
通过查看x,y的交叉引用,发现只有对其读的操作,而没有写的操作,并且x,y又都在bss段中,属于未初始化的变量,初始值即为0,因此x,y是题目加的混淆,所以写个ipython脚本去除花指令,提前将x,y赋值为0,然后IDA重新解析。

#以下代码来自pizza大佬
import ida_xref
import ida_idaapi
from ida_bytes import get_bytes, patch_bytes

def do_patch
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值