GKCTF2021-App-debug
Android逆向解题-[GKCTF2021] App-debug
题目
[GKCTF 2021]App-debug | NSSCTF
Java层
没啥东西:
1 | if (mainActivity.check(mainActivity.mEtflag.getText().toString())) { |
直接看Native
Native层
1 | // public native boolean check(String str); |
TEA:
1 | bool __fastcall sub_3ED8C(unsigned int *a1) |
Frida Hook脚本
通过Hook来读取TEA函数加密前后的值,来辅助解密脚本的编写。
同时也获得了具体的Key,防止Key被动态修改。
1 | let mod = Module.findBaseAddress("libnative-lib.so") |
解题脚本
注意4个字节的key,在so里面还动态修改了一下。
1 | from ctypes import * |
最后一个字节解密后发现实际上是空字节b’\x00’,不过这玩意根本不好输入到框内。隔着就是玩呗。
最后根据提示,把b'GKcTFg0'
MD5哈希一下就好了。
反调试
根据其他尝试动调so的WP,这个so里面有反调试逻辑。
直接搜索调用strstr
函数的调用点发现:
1 | __int64 sub_3EF3C() |
通过获取/proc/<pid>/status
来检索TracerPid
的值,判断是不是0,来发现有没有被调试。可以通过简单Patch来绕过。
参考
[BUUCTF GKCTF 2021]app-debug_ctf app-debug_皮皮蟹!的博客-CSDN博客
- 本文作者: Taardis
- 本文链接: https://taardisaa.github.io/2023/10/11/Android逆向解题-GKCTF2021-App-debug/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!