安卓安全初探

做题

[SWPUCTF 2021 新生赛]easyapp

app逆向、jadx、java反射

丢jadx,找MainActivity,利用java反射改key为987654321

还要猜测%256

1
2
3
src='棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
for i in src:
print(chr((ord(i)^987654321)%256),end='')

[HNCTF 2022 Week1]给阿姨倒一杯Jvav

Java-.class逆向

新建class、src文件夹,把.class放在class文件夹中,命令:

1
>jad -o -r -s java -d src class/*.class

exp:

1
2
3
4
5
6
7
8
9
10
11
#include <cstdio>
using namespace std;
int key[18]={180,136,137,147,191,137,147,191,148,136,133,191,134,140,129,135,191,65};
int main(void){
for(register int i=0;i<18;i++){
key[i]^=0x20,
key[i]-=64;
printf("%c",key[i]);
};
return 0;
};

AndroXor(NewStarCTF2023)

简单apk逆向

[CISCN 2022 东北]crackme_Android

Android逆向,256位分段md5爆破,风扇嘎嘎响

[Week 3] 代码启示录

压缩包…直接解压得.class

新建class文件夹放原.class,新建src留着存代码

1
jad -o -r -s java -d src class/**/*.class

打开.java得

[HZNUCTF 2023 preliminary]easyAPK

用户名:admin

密码加密算法为AES,密文为“Lz49p2OjPZzUMXakynHQuw==”Base64解密可得,密钥为“kkkeyyy404404404”,偏移为“iviviviviviviviv”。

1
2
3
4
5
6
7
8
9
from Crypto.Cipher import AES
import base64
key=b'kkkeyyy404404404'
iv=b'iviviviviviviviv'
cipher=AES.new(key,AES.MODE_CBC,iv)
s='Lz49p2OjPZzUMXakynHQuw=='
ciphertext=base64.b64decode(s)
plaintext=cipher.decrypt(ciphertext)
print(plaintext)

得密码,进入获得十六进制数据转字符串再Base64。

[SWPUCTF 2022 新生赛]android2

重题:[SWPUCTF 2021 新生赛]easyapp

1
2
3
src='棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
for i in src:
print(chr((ord(i)^987654321)%256),end='')

简单注册器

辣鸡Jadx把Smali给我反汇编错了…