171023 逆向-BDCTF(Re)

xiaoxiao2021-02-28  12

1625-5 王子昂 总结《2017年10月23日》 【连续第388天总结】 A. BDCTF-蓝盾 B. 逆向就3个题目,难度适中~ 感觉前两个re思路都很清奇

逆向签到

ExeInfoPe查壳,发现是UPX,直接工具脱壳,拖入IDA 反编译看到是一串数组 显示输入内容和(数组值+下标)作差的结果,提示要看到”flag” 那么开头字符作差后应该是’f’的ASCII 即key=数组第一个值+下标0+ord(‘f’) 算出key是233,输入程序即得到flag:

简单逆向

ELF文件,直接拖入IDA反编译 给了三个数字,相当于一个数组 循环17次,所以估计flag长度为17 随机生成一个数,在check函数中运行比较

结束的时候要求check return1 17次

check函数中又给了一个数组,进行运算: 因此只要按序将内外两个数组异或即可得到需要的随机数

注意外部数组是以long类型存储的,内存中是小端序,第一个元素实际上是最后两个数组,脚本中要变换一下: 最后第3个int是33,我将它插入在第二个整数的前边了,因为是逆序处理 实际上应该在s最后加上的 提交发现错误,队友凭借敏锐的直觉将o改为了i后成功 flag{linux_is_ok}

apk逆向

拖入APK改之理反编译,查看MainActivity类,找到点击事件 调用了test类的boom方法,跟过去 发现通过check方法判断两个字符串,arg4由点击事件传入包名,arg5则是输入的字符串 check方法中进行了处理和计算,懒得脚本计算,直接动态调试 用jeb2在reverse方法的字节码中下断 adb连接模拟器,附加后随便输入,查看reverse方法的返回值 手动添加flag{}提交完成

转载请注明原文地址: https://www.6miu.com/read-1900020.html

最新回复(0)