-
-
[原创]看雪 CTF 的一道题目
-
发表于:
2020-11-26 19:56
5468
-
感觉做完之后能对 Android 逆向有更进一步的理解,特地码一下,也拜读了几位大佬的文章。
1、看一下androidmanifest.xml
就一个活动进去看看
2、Mainactivity
看起来只要把用户名跟密码 作为 颠倒的字符串就行
然而并不是,再仔细观察就能发现 public class MainActivity extends AppCompiatActivity
开始以为是android 原生的AppCompiatActivity ,然而是改了一个相似的名字不仔细看,很容易忽略,这个操作挺骚的
懒得截图,直接用了某大佬的图
3、AppCompaitActivity
真正的校验逻辑在 AppCompaitActivity 这个类的 public native boolean eq(String str); 函数内
这个函数是一个 native 函数,那么具体的校验逻辑必然在 oo000oo 对应的 so 文件中
4、发现so文件中并没有eq该函数,所以判断在JNI_LOAD或者在init_array里面做了手脚。
5、跟踪.init_array
init_array函数执行了datadiv_decode5009363700628197108字符串解密函数
650f909c-7217-3647-9331-c82df8b98e98
!:#$%&()+-*/`~_[]{}?<>,.@^abcdefghijklmnopqrstuvwxyz0123456789\';
android/support/v7/app/AppCompiatActivity
Eq (Ljava/lang/String;)Z
总结:
#解码36长度字符串byte_4020:
byte_4020 =650f909c-7217-3647-9331-c82df8b98e98+0x00(结束符)
#解码Base64为的64+1个编码字符byte_4050=
base64Chars = byte_4050 =!:#$%&()+-*/`~_[]{}?<>,.@^abcdefghijklmnopqrstuvwxyz0123456789\';+0x00(结束符)
#app伪装java类的名称byte_40A0:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)