南邮CTF逆向题第四道WxyVM解题思路

这篇博客介绍了南邮CTF中一道逆向题目的解题过程,主要涉及WxyVM。作者首先分析了main函数的C代码,通过对比字符串与预设值来判断是否正确。然后详细解释了sub_4005B6函数的逻辑,并提出了两种解题思路:一是通过对运算进行逆运算恢复原始字符串;二是直接对所有情况进行逆运算。给出了部分解题脚本和参考资料链接。
摘要由CSDN通过智能技术生成

首先看下题目

 

ELF文件

直接载入64位IDA

进入main函数

F5查看C代码

分析main函数代码:

 

 

__int64 __fastcall main(__int64 a1,char**a2,char**a3)//main函数有三个参数

{

char v4;// [rsp+Bh] [rbp-5h] //定义一个char型变量v4

signedint i;// [rsp+Ch] [rbp-4h] //int i;

 

puts("[WxyVM 0.0.1]");//输出字符串"[WxyVM 0.0.1]"

puts("input your flag:");//输出字符串"input your flag:"

scanf("%s",&byte_604B80);//获取用户输入一个字符串保存在地址604B80的位置

v4 =1;//v4 = 1;

sub_4005B6();//调用sub_4005B6这个函数

if( strlen(&byte_604B80)!=24)//如果获取的字符串长度不等于24

v4 =0;//v4 = 0;

for( i =0; i <=23;++i )//开始for

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值