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求解,但是约束不完整,就硬猜。脚本