IDF实验室之简单的PE文件逆向

原题链接:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=38


因为是个pe文件,我们现在PC上运行以下,如下图:


也就是说要输对flag,内部大概是字符串的对比

直接上IDA ,一路F5,于是在函数sub_4113A0中找到判断代码


前面一大串定义了一些int常量、一个char数组,一些字符

直接跳过前面的gech输出,进入判断

找到


好吧,它是通过v13来判断的,如果我们要输出“u r right“,那么v13肯定不能等于1,于是我们再往上面看


如果要v13不为1那么v38=49(对于字符1)。。。。

这样我们得到了1024}

跟格式wctf{xxxxx}有点像了,也就是说前面还有字符串

我们再找到定义


于是我们要找到v37[17]这个数组

我们看到前面还有一个for循环


接着我们找到这个byte_415768数组是这样子的


V14的值为1,&v14+1的意思就是&v14+size(int),v14的地址加上4个字节,于是我们再看到前面的定义。


加上4个字节也就是到了v15的地址上去

也就是说*(&v14+1)=v15,因为地址范围是连续的

这样我们只要按照v14-v33来去值就行了,如v37[0]=byte_415768[1]=w。。。

以此类推

得到

wctf{Pe_cRackme1_1024}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值