签到题
拖进IDA,查看一下伪C代码,入口处设置了rand的seed,因此查看调用_rand的函数
发现只有prlntf函数调用了,于是查看该函数
这就是关键代码了。
接下来计算call的偏移地址,把调用puts改为调用prlntf
所以需要知道2A FF FF FF是怎么来的 (EB就是call)
_puts相对于当前代码00401CE1 的偏移值为 E1-10 =D1
而FF-2A=D5 D5=D1+4
所以2A = FF –(D1+4)
而prlntf相对于当前代码00401CE1的偏移值为 CE1-370 =971
所以所求值= FFFF –(971+4)= F68A
所以打开IDA的Hex视图,修改2A FF 为8A F6(刚开始改的F68A,是错误的,参考了一下上面调用__main的偏移发现要倒过来写)
保存后返回,发现已经变成调用prlntf函数了(这仅仅是在IDA中修改了,真正修改需要使用2进制编辑工具修改才能生效)
接下来有两种方法(区别仅仅在于是否永久修改Hex):
- 在call puts处下断点,动态调试,运行到断点处在HexView中手动修改跳转偏移,同时在调用prlntf的下一行下断,以便观察输出的flag
- 使用2进制编辑工具修改生效后,由于程序一闪而过,所以继续IDA动态调试,调用prlntf的下一行下断,以便观察输出的flag
大佬的凝视
图片为PNG格式,直接拖进010搜png文件尾,发现附加有RAR文件
截断,复制到新文件中,发现有密码(经测试不是伪加密,密码也没跑出来,还试了图片中的日文,也是错误的
使用Stegsolve查看图片,发现Blue色道可疑
使用Analyse->Data Extract发现压缩包密码
解压缩以后得到flag.zip,发现是伪加密,修复后解压出其中的flag.txt,是一段base64后的字符串
解base64得到flag
So_easy
直接拖进010搜png文件尾,发现附加有一段字符串和一个RAR文件
字符串结尾是3D3D猜测是base64,16进制转10进制字符串后解码base64,得到提示
hint:the password is what you see!
由于是rar,可设置中文密码,输入“优雅矜持端庄腿麻站会儿”解压得到一张明显修改了高度的图片,直接暴力修改高度为1024得到flag
(用脚本爆破高度也行,脚本见下文)
学姐真美
拖进010,搜文件尾,发现附加有一个不知道是啥的文件,街区提取之
经观察推测是png文件(有IHDR),修复文件头后显示出一张图
继续拖进010,提示crc32校验错误,利用python脚本跑出正确高度为620,修改后显示出一个二维码
脚本如下:
1 | import os |
解码得到一个提示
pass is 13bytes,please input its hex value.u must know where is wrong :P.
IHDR是13字节,pass就是密码的缩写,所以文件需要解密
使用steghide解密得到flag
突破重围
得到的是一个bmp文件(后面一大堆空字节, 直接删除),拖进010,
经观察16进制,感觉应该是png文件(有IHDR),修复文件头后显示出第一层key
搜文件尾,发现附加有RAR文件,导出
解压得到wave.mp3和sinx_cosx.rar(又有密码。。。。
应该解析波形得出密码吧。。。。
还有第三层。。。。
到此放弃
关于逆向题
拖进IDA,找到了关键代码,然而,不会解啊= =