pojiemiyao


BUUCTF-REVER-[DDCTF2018]破解密钥

0x1分析java层

1

发现CTFLib.vaildata 来进行判断

2

进入之后发现check代码在so层

0x2 分析so层代码

3

4

5

6

找到关键加密位置 非常简单 只需要动调获得V7就可以了

0x3 坑点

7

Sub_3C60函数里有TracePid反调试 方法有很多 可以frida hook 改变真机内核源码 改内存

0x4 脚本编写

list1=[0xA9 ,0xDE ,0xAD ,0x01 ,0x83 ,0xBB ,0x4B ,0x31 ,0xB7 ,0x84 ,0x54 ,0xDD ,0x8F ,0x65 ,0x0C ,0x44 ,0xBD ,0x13 ,0xAB ,0xB4 ,0xAE ,0x73 ,0x54 ,0xD9 ,0x69 ,0x64 ,0x32 ,0x0A ,0xAC ,0x36 ,0x0B ,0x97]
list2=[0xED ,0x9A ,0xEE ,0x55 ,0xC5 ,0xC0 ,0x0C ,0x5E ,0xD8 ,0xE0 ,0x1E ,0xB2 ,0xED ,0x49 ,0x4F ,0x2B ,0xD3 ,0x74 ,0xD9 ,0xD5 ,0xDA ,0x06 ,0x38 ,0xB8 ,0x1D ,0x0D ,0x5D ,0x64 ,0xDF ,0x17 ,0x2A ,0xEA]
res=[]
for i in range(len(list1)):
 res.append(chr(list1[i]^list2[i]))
print ("".join(res))

DDCTF{GoodJob,Congratulations!!}

0x5总结

这题最大的学习就是动调so 和 过反调试 学到了各种过trace反调试的方法


文章作者: Blue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Blue !
评论
  目录