Android 逆向笔记

安卓逆向中的学习笔记,待更。

简单的crackme笔记总计
https://juejin.im/post/5ce52ed951882532df70ab58#heading-7

大佬的超全的笔记
https://lichao890427.github.io/wiki/android%20reverse%20engineering/

看雪的逆向资料
https://www.kanxue.com/chm.htm

逆向资源练习
https://blog.csdn.net/qq_36869808/article/details/79290420

某陌apk的逆向
https://blog.csdn.net/weixin_43832522/article/details/85085524
https://bbs.pediy.com/thread-251689.htm

反调试:
https://bbs.pediy.com/thread-223324.htm

AliCrackme_2.apk
https://www.bodkin.ren/index.php/archives/643/

Android应用完整性保护总结
https://bbs.pediy.com/thread-250990.htm

反编译工具

1
2
3
4
5
6
7
Android Studio   开发和调试smali代码
IDA pro 7.0 分析elf文件
jeb Apk反编译集成工具(代码质量高)
jadx‐gui dex直接转换成java代码(代码质量高) https://github.com/skylot/jadx
ApkTools 集成了baksmali和smali
ApkDB 将smali代码反编译成dex文件,并重新签名APK(自己编写)
APK改之理 集成工具,效果挺好的

IDA动态调试so

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1、保证apk开启debug,在application标签属性添加 android:debuggable="true" ,回编译apk文件,
使用adb install -r crackme.apk 安装apk。

2、手机开启IDA调试服务:【adb shell】【su】【./data/local/tmp/android_server】
PC端进行端口转发:【adb forward tcp:23946 tcp:23946】

3、打开DDMS,以调试方式来启动应用
【adb shell am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity】

4、IDA进行attach附加,附加完成后设置debugger options,
勾上"process entry point","thread start/exit","library load/unload"三个选项

5、使用jdb恢复进程运行 (DDMS要先开启,在sdk tools下),
【jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700】,终端出现停顿

6、点击绿色三角【F9】执行程序,弹窗选否,开始调试,因为设置了"library load/unload"选项会在类加载时停住,
所以一路点击运行,直到看到加载的so文件被加载进来,就可以在modules列表找到函数进行断点。

7、【F7】单步步入,【F8】单步步过

IDA动态调试so详情看这里:https://www.cnblogs.com/aademeng/articles/6883928.html

安卓逆向