首页
社区
课程
招聘
[原创]看雪 CTF 的一道题目
发表于: 2020-11-26 19:56 5468

[原创]看雪 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期)

收藏
免费 2
支持
分享
最新回复 (5)
雪    币: 145
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
很好。
2020-11-27 11:38
0
雪    币: 3165
活跃值: (5146)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
原题呢
2020-11-27 11:42
0
雪    币: 1750
活跃值: (1390)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这个冷饭看过四五次了。。
2020-11-27 14:17
0
雪    币: 1636
活跃值: (653)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
wx_Dispa1r 这个冷饭看过四五次了。。
以前没有搞过so层,只能借鉴别人搞过的东西,这是我的学习笔记
2020-11-29 17:34
0
雪    币: 582
活跃值: (317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请问这种题是哪里找到的 我也想拿来练练手
2020-11-30 15:38
0
游客
登录 | 注册 方可回帖
返回
//