使用apktool
demo:
这个demo用来把用户名和他的SN(md5的hash值)码进行比较,
使用kali的apktool对一个apkdemo进行逆向分析
反编译
┌──(root㉿kali)-[~/下载]
└─# apktool d crackme02.apk -o outdir
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
I: Using Apktool 2.6.1-dirty on crackme02.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
┌──(root㉿kali)-[~/下载/outdir]
└─# ls
AndroidManifest.xml apktool.yml original res smali
分析apk文件
因为下面会弹出 “无效用户名或注册码” 来查找文件中是否包含
┌──(root㉿kali)-[~/下载/outdir]
└─# grep --color=auto -rns "无效用户名或注册码" *
我们查看res/values/strings.xml
文件 ,
开发android应用时,strings.xml文件中的所有字符串索引都在 gen/<packagename>/R.java
中string类有唯一标识(每一个字符串都有一个索引值),使用apktool后,保存在strings.xml的同级文件public.xml
中
查看文件
查找unsuccessed 的id:0x7f05000c