【PE32】SoEasy与re1逆向

本文介绍了如何使用IDAPro和x32dbg工具对32位PE程序进行逆向分析,包括SoEasy.exe和re1.exe,通过查找特征字符串、设置软件断点和动态调试,实现解密获取Flag的过程。

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

考核内容

  • 逆向分析PE程序,获取Flag

环境与工具

  • Windows 7
  • IDA Pro
  • x32dbg
  • Detect It Easy

第一题分析过程

  1. Detect It Easy确认SoEasy.exe为32位PE程序文件
  2. 运行程序,可以看到有特种字符串
  3. IDA Pro载入目标程序SoEasy.exe,可以看到在特征字符串。
  4. 在汇编窗口中按F5生成伪代码:Str1为输入字符串,Str2为解密后的Flag,通过调用stricmp()比较两个字符串是否相同。此时,我们有两种方法获取Flag:其一是通过获取数据编写Python解密脚本,运行后可以获取Flag;其二是使用x32dbg动态调试获取Flag。
  5. x32dbgo载入目标程序SoEasy.exe,并运行到该模块,然后鼠标右键依次选择下列菜单命令。
  6. 搜索到特征字符串。
  7. 找到解密部分,设置软件断点如下。
  8. 根据分析结果,在解密循环代码后一行设置软件断点,同时,选择内存窗口,按Ctrl+G弹出窗口填写ebp-0x6c(初始eax=0)点击“确定”按钮,再按F9运行程序即可获取Flag。

第二题分析过程

  1. Detect It Easy确认re1.exe为32位PE程序文件
  2. 运行程序,可以看到有特种字符串
  3. IDA Pro载入目标程序re1.exe,可以看到在特征字符串。
  4. 在汇编窗口中按F5生成伪代码:重命名printf()函数,sub_401000()是要关注的关键算法代码
  5. x32dbgo载入目标程序re1.exe,定位到关键代码处并在0x401093地址处设置软件断点,按F9运行输入“53 2”两个整数并按Enter键,程序运行如下界面。
  6. 不要输入13个整数,直接修改cmp指令的参数ESI寄存器即可。
  7. 修改0x401170地址处的汇编指令。
  8. 在0x401198地址处设置软件断点,按F9运行,即可获得Flag。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值