本帖最后由 neilwu 于 2021-2-16 15:48 编辑
一道Android题
题目:https://www.52pojie.cn/home.php?mod=task&do=view&id=15
Java层
Java_cn_pojie52_cm01_MainActivity_check
AndroidManifest.xml修改:
android:extractNativeLibs="false" ->android:extractNativeLibs="true"
Native层
D90中:
[Asm] 纯文本查看 复制代码 0000007FC7D46E30 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 ABCDEFGHIJKLMNOP
0000007FC7D46E40 51 52 53 54 55 56 57 58 59 5A 61 62 63 64 65 66 QRSTUVWXYZabcdef
0000007FC7D46E50 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 ghijklmnopqrstuv
0000007FC7D46E60 77 78 79 7A 30 31 32 33 34 35 36 37 38 39 2B 2F wxyz0123456789+/
0000007FC7D46E70 00 2D C4 5A E7 DF 6A 20 11 DE 23 1E AA 47 42 6C .-..... .....GBl
v9的值如下(40字节): [Asm] 纯文本查看 复制代码 0000007FC7D46EE0 35 47 68 32 2F 79 36 50 6F 71 32 2F 57 49 65 4C 5Gh2/y6Poq2/WIeL
0000007FC7D46EF0 4A 66 6D 68 36 79 65 73 6E 4B 37 6E 64 6E 4A 65 Jfmh6yesnK7ndnJe
0000007FC7D46F00 57 52 45 46 6A 52 78 38 00 6F D4 C7 7F 00 00 00 WREFjRx8.o......
获取flag
程序加密验证过程如下:
1、B90() 对称加密
(1)30字节-> 30字节
(2)key areyousure??????
2、D90() base64
(1)30字节-> 40字节
3、与V9 40字节进行判断
获取flag
1、动态调试获得v9 40个字节 进行base64
[Python] 纯文本查看 复制代码 base64.b64decode('5Gh2/y6Poq2/WIeLJfmh6yesnK7ndnJeWREFjRx8')
获得30字节
[Asm] 纯文本查看 复制代码 \xe4
h 0x68
v 0x76
\xff
. 0x2e
\x8f
\xa2
\xad
\xbf
X 0x58
\x87
\x8b
% 0x25
\xf9
\xa1
\xeb
' 0x27
\xac
\x9c
\xae
\xe7
v 0x76
r 0x72
^ 0x5e
Y 0x59
\x11
\x05
\x8d
\x1c
| 0x7c
2、B90()函数对称加密获得flag
|