UTCTF Beginner:Basic Reversing Problem
附件拖入ida
可以看到每个函数都会给一个字符
最后一个函数下断点,然后运行
UTCTF Fruit Deals 复现
附件用excel打开并启用宏
菜单栏查看宏,选择编辑
有两个模块。一个是生成powershell脚本并执行,一个是随机填充表格
比赛时没找到sheet2,赛后看wp后才知道被隐藏了,需要右键表格选择取消隐藏
但是这里不影响。比赛时我是把生成脚本那个模块手动去混淆,然后尝试拼接。但是中间有一段不确定
原来这个模块是能够运行的,而且还能通过调用函数输出f的值,也可以下断点调试。在f下加一行MsgBox f就能得到了,exe的名字一目了然
Unbreakable International Team Phase file-factory
go语言,解出是意料之外。附件拖入ida
题目一共有五个问题,先看第一个
main函数的符号名,看格式应该是两个单词。从起点开始跟,找最像的
但是从上面这个函数可以看出这些只是类似C语言的启动过程。那么既然是main函数,总得带main吧。函数列表过滤一下
很明显
第二题
先进main函数看看
这不是很明显嘛
第三题
main函数向下翻
第四题
跟进createFile函数,发现看不懂。脑子一转,问问GPT
第五题
同理
Unbreakable International Team Phase pin
附件拖入ida
就两个函数,一个输入,一个检查
AmateursCTF typo
文本编辑器打开附件
变量名被混淆了,快速替换修改一下,但是要注意匹配大小写
修改完大概是这样
看起来还是比较简单的,利用伪随机数生成处理函数序列,然后逐个调用函数,一共就三个调用函数,其中两个还是lambda表达式。写的时候唯一的难点是最后那个func1里面的进制转换以及类型转换。最后依靠GPT和步步调试弄出来它的逆函数。脚本。s9是一个列表,装载正向处理时各函数的逆函数,在正向过程中插桩得到
RITSECCTF My Favorite Flag
给了源码和编译后的文件。文本编辑器打开源码
或者可执行文件拖入ida
比较简单。脚本
RITSECCTF Guess
附件拖入jadx
第一段字符串base64解码
运算直接出。脚本
TAMUCTF Reveille Petter
文件运行显示Godot。用工具gdre_tools提取
gd后缀文件用文本编辑器打开
一目了然。但是起先并不知道这,而是用CE改内存
b01lersCTF Annnnnnny Second Now
附件拖入ida
一个递归调用,很明显是斐波那契。在线网站求这个数
脚本
NSSCTFROUND22 EzHook
没搞懂它本身Hook的原理,但是做出来了。附件拖入ida,可以根据经验定位main函数,也可以通过字符串
只做了两次处理,都是异或操作
但是解出来被告诉是假的。函数列表中的函数都点点,发现了xxtea加解密函数
向上查引用,发现了比较
下断点调试,发现会在输出前跳转到xxtea加密流程,而且调用加密函数前还把异或后的数据还原了(256次异或就等于异或一次0x73)。经验证,加密过程没变,网上的解密脚本稍微修改下MX和DELTA的定义就能用(哦,对了,第二个参数看着是40,其实除了个4。。)。脚本
PaluCTF Auth System
附件拖入ida
main函数里没东西,看看字符串
查引用定位函数
而对该函数查引用发现居然在main函数调用,查看main函数汇编
原来如此,可以通过写脚本异或或者改汇编。脚本
GFCTF prese
附件拖入ida
可以看到有混淆,但是程序比较简单,经过一个加密函数后就直接比较了
而加密函数里是通过输入长度生成一个数组,输入字符值作为索引取值
写完脚本后验证发现不对,而在调试的情况下会输出成功,所以应该有反调试,对密文查引用
多加一步异或就行了。脚本
CITCTF Strung Along
附件拖入ida
题目描述是让找flag,main函数没内容。转到汇编上下找找,直接出
第九届中国海洋大学信息安全竞赛 xor++
附件拖入ida
比较简单。脚本
第九届中国海洋大学信息安全竞赛 钩子
附件拖入ida
第一个函数进去看看
验证不对。下断点调试,窗口一闪就没,应该是有反调试,对验证函数查引用
再向上查引用
下断点调试,通过修改eip跳过反调试,验证函数步入
发现跳到了另一个函数。a1为输入长度,a2即输入
下断点获取异或值。有意思的是如果输入全为数字的话最长才24,不过没关系,修改eip照样取值
脚本
总结
以后如果做的题多的话,可以半个月出一次wp集合贴。但最主要还是懒