cr3CTF warmup



附件拖入ida

main函数无法反汇编,仔细看,有花指令,jnz实际上必定跳转。有非常多处,可以写脚本patch程序去掉花指令,只要匹配指令,再获取跳转地址,nop掉中间的代码就行。但是我选择动调。输入的第一个字符先减掉一个常数,然后比较

之后的每一位字符都是先减掉一个常数,再异或之前的输入原文,然后比较。直接手动计算器


cr3CTF mba-boy


BGB,好眼熟,之前好像做过一个还是两个这种题。附件拖入bgb64

按Esc调出debugger

可以很容易在内存中找到字符串,但是无法查引用

关键是怎么定位到关键函数。我的办法是在每一个ret的下一行加断点,可以结合字符串搜索(ctrl+F,菜单栏也有)找ret。最后发现在选中check回车时会断在062B处

然后一直向下翻,会发现这个函数比较长

如果运气好或者眼睛尖的话,可以看到上图有7B,而且实际上是在比较,把所有值提取出来,再稍微修改两个字节就出来了。我没看见,直接动调了整个过程。在动调时,可以发现程序把每8个字节当做一个块来处理,于是我把所有对相应地址的操作全写了下来,整整写了三页。下图是后半部分,一共四列,一、三列是操作,二、四列是推导,[40]是输入。写着写着就可以知道,其实就是门电路的运算。可以看到,推到最后每八个字节中只有第一个字节被改变了。。。


UMDCTF cmsc430



附件拖入ida。把输入的字符乘2然后逐位做判断





BSidesSFCTF shinji


附件拖入jadx


并不是很复杂,就一个爆破时间戳。脚本

再问GPT要一个多线程的版本。线程设置为128,运行即可


BSidesSFCTF Turing Complete


附件拖入ida


这个图灵机很简单,控制v17移动到flag的位置然后读出来就好了



天一永安杯 re-2


魔改upx壳,把四个CTF换成UPX即可。附件拖入ida

下断点运行直接得

天一永安杯 re-1


脚本写的稀烂。附件拖入ida

main没东西,但是函数表有东西



类rc4加密


全部copy,稍微改改就能用来解密。脚本


高校网络安全管理运维赛 easyre



附件拖入ida

简单的base64换表


高校网络安全管理运维赛 babyre


附件拖入ida


都只是简单的运算而已。用脚本稍微爆破一下即可


TBTLCTF Flagcheck



附件拖入ida

看起来像是要爆破种子,但是调试一下就会发现,其实做完乘法后不管输入是什么,种子都为0,应该是因为在某次溢出之后,seed为0,然后就一直为0了。脚本


TBTLCTF Floo Powder


有点脑洞,解出占运气。附件拖入ida


输入是一堆01字符串,然后按照特定的顺序判断应该是0还是1

脚本


copy过来,赋值,然后输出


看不出来,就想着换字符能不能看得更清楚

诶,这就很清楚了,明显是二维码,再换

手机一扫

黄河流域网络安全技能挑战赛 喝杯茶



附件拖入ida,有ollvm混淆,但是混淆程度很轻,可以选择用d810嗦一下


就一个xxtea加密。网上的脚本直接copy过来就能用



全国大学生信息安全竞赛 asm_re



附件用文本编辑器打开

很好,是我不是很熟的arm汇编。无所谓,直接找运算

再把数据提取一下。脚本

全国大学生信息安全竞赛 gdb_debug


附件拖入ida

一看又是要爆种子的。直接上脚本


DragonKnightCTF elec_go



electron程序,第一次做,忘记怎么看出是electron了。。照网上的教程把resource目录下的app.asar解包

找js文件用文本编辑器打开



处理部分用base64解码,看起来就一个aes-ecb

没解出来,应该是哪里不对。尝试换种办法,调试,这个网上也有教程


原来是key变了

L3akCTF Hidden



附件拖入ida


明文flag

L3akCTF Angry


垃圾题目,对脑洞的。附件拖入ida



直接z3求解,但是约束不完整,就硬猜。脚本

