安卓逆向

例题

1

拿到先放入exeinfor看一下,发现是一个zip文件,那么直接修改后缀名,解压得到apk文件

然后放入jadx进行反编译

activity_main.xml通常是在Android应用程序的res/layout目录下。 如果您使用Android Studio进行开发,您可以在项目文件夹的app/src/main/res/layout/目录中找到它。 如果您无法找到它,您可以在Android Studio的项目窗口中展开app > src > main > res > layout目录来查看是否存在activity_main.xml文件。

然后可以找到Mainactivity

或者也可以直接搜索Main

然后点进mainactivity,可以找到关键加密词

注意这里的key被改掉了,从123456789改成987654321

跟进encode,然后逆向一下得到flag

1
2
3
4
5
6
a='棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
flag=''
key=987654321
for i in range(len(a)):
flag+=chr((ord(a[i])^key)%128)
print(flag)

这里解释一下为什么要取余

这是因为ASCII字符集只有128个字符,所以如果不取模,那么异或运算的结果可能超出ASCII范围,导致无法正确解密。取模128可以保证结果在0到127之间,也就是ASCII字符集的有效范围。

如果不取余就会出现超出ASCII的范围

2

在代码中,2 00 的来源是这一行:

1
2
3

Integer.valueOf((int) ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION)

点进入看一下这个值

1
2
3
4
5
6
a=[404, 220, 436, 368, 220, 436, 412, 452, 432, 200, 412]
b='ccadwjlyah'
for i in range(len(a)):
x=(a[i]>>2)^3
print(chr(x),end='')
mima='f4n_4ndro1d'

放到蓝叠模拟器运行一下


安卓逆向
http://example.com/2024/05/13/安卓逆向/
Author
chaye
Posted on
May 13, 2024
Licensed under