[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
生活随笔
收集整理的这篇文章主要介绍了
[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
网上大部分是动调,我尝试IDC解一下,
无壳,32位,放入IDApro,查看main函数
查看wrong和str函数,借出假的flag
a=[0x66,0x6B,0x63,0x64,0x7F,0x61,0x67,0x64,0x3B,0x56,0x6B,0x61,0x7B,0x26,0x3B,0x50,0x63,0x5F,0x4D,0x5A,0x71,0x0C,0x37,0x66] for i in range(24):if(i&1==0):a[i]=chr(i^a[i])else:a[i]=chr(i+a[i]) print(''.join(a))flag{fak3_alw35_sp_me!!}
,查看encrypty函数( 这题主要记录一下SMC的IDC脚本过程,SMC上一篇有介绍)
首先选中上面代码段部分(黑色),按D键,先转化为数据
然后使用IDC脚本
#include <idc.idc>static main() {auto addr = 0x401500;auto i = 0;for(i=0;i<187;i++){PatchByte(addr+i,Byte(addr+i)^0x41);} }脚本运行之后还是不可以反编译
我们选中黄色数据按c键转化为代码。
然后选中下面的一大段数据,右键强制分析。
选force然后,选中红色区域,按p定义为函数。
反汇编之后
简单的异或,Buffer的内容为
'hahahaha_do_you_find_me?'
写脚本
v3=[0x0E,0x0D,0x09,0x06,0x13,0x05,0x58,0x56,0x3E,0x06,0x0C,0x3C,0x1F,0x57,0x14,0x6B,0x57,0x59,0x0D] buffer='hahahaha_do_you_find_me?' b=list(buffer) f='' for i in range(19):print(chr(ord(b[i])^v3[i]),end='')结果:flag{d07abccf8a410c
少了一部分,我们继续看看汇编,我们先得把finally函数部分D键转化为数据,然后再把黄色(和灰色)部分C键转化为code,然后所有p定义为函数,再F5;
我懵逼了,没看懂。。。。
后面看的大佬的wp 大佬的wp (去看汇编代码!!!,猜测最后几位是与%tp&:是异或关系)
七分逆向,三分脑洞!!!
最后 flag{d07abccf8a410cb37a}
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: BUUCTF--[GWCTF 2019]
- 下一篇: BUUCTF-[网鼎杯 2020 青龙组