一、所需工具
  1. 一台已Root的手机(不建议安卓版本高于8.1,IOS不会)
  2. xposed、xposed Install(XAppDebug、Build PropEnhancer、JustTrystMe…)
  3. charles(或其他抓包http工具)、Wireshark(socket、tcp、ip、tcp/ip 等)非http请求需要它
  4. Android Studio(我使用的是Smail打桩进行动态调试,需要AS)
  5. Jadx-gui 编译apk为Java伪代码(主要用于逻辑分析)
  6. luyten(部分Jar包jadx会出现反编译失败,可以用luyten)
  7. frida(hook app中的函数进行具体分析)、unidbg (调用So层函数)
  8. ApkToolBox(反编译apk为Samil、查壳等…)、BlackDex(apk脱壳,虽然可以脱壳但是尽量还是选择低版本无壳版本)
  9. Python3.8(Python推荐安装较高版本,最新的除外)、安卓SDK、Java1.8(推荐安装1.8,经典永流传)
  10. Pycharm、IntelliJ IDEA(位于Java曾的加密可以使用IntelliJ IDEA尝试逆向)
二、环境搭建
1 - 2:root手机和xposed

下载:--------------------------
 
安装:--------------------------
 
第一二两点可以去淘宝咸鱼上购置一台Root的洋垃圾,比如我的就是在淘宝购买的一台pielx2,就不多说了,我也不会刷机…

3:Charles & Wireshark

下载:charles:https://www.charlesproxy.com/ 注册码:https://www.charles.ren
 
Wireshark:https://www.wireshark.org/download.html
 
安装:我喜欢使用charles进行抓包,所以主要讲如何将Charles的CA证书安装到系统目录下,关于fiddler和其他的也可以参照着来,原理都是一样的,将CA证书hash重命名mv到/system/etc/security/cacerts之后chmod 755(777)就可以了.
 
使用:charles网上随便找找吧,Wireshark:

#charles 证书安装 (安卓7及以上)
#PEM或者DER格式均可。
#如果是PEM格式的:
openssl x509 -inform PEM -subject_hash_old -in xxx.pem -noout

# 如果是DER格式的:
openssl x509 -inform PEM -subject_hash_old -in xxx.cer -noout


#重命名证书为执行如上命令生成的hash值 ---> hash.0

#传入手机
push xxxx.0 /sdcard

#获取手机的root权限
adb shell
su

#挂载系统目录为可写
mount -o rw,remount /
chmod /system 777

mv /sdcard/xxx.0 /system/etc/security/cacerts
#修改证书权限
chmod 777 /system/etc/security/cacerts/xxx.0

lua boolea 反向 lua逆向工具_安卓

Wireshark基本使用:

1、选择需要捕获的本地链接

lua boolea 反向 lua逆向工具_lua boolea 反向_02

2、使用过滤器快速筛选

lua boolea 反向 lua逆向工具_反编译_03

4:Android Studio & Smali

下载:Android Studio:https://developer.android.google.cn/studio
          Smali:https://bitbucket.org/JesusFreke/smali/downloads/
 
安装指南:Android Studio:https://developer.android.google.cn/studio/intro
 
smalidea我下载的是0.06,需要下载高版本的,低版本可能遇到:Fail to load plugin descriptor from file smali-2.4.0.jar。下载之后在AS 的setting - Plugins - install plugins from disk 选择下载的就可以了,下载smalidea是为了能够打桩进行动态调试。
 
使用:AS官方都出指南了,我就不再赘叙了,smalidea的话多了解一下smali语法看得懂就好了。语法参考:

lua boolea 反向 lua逆向工具_lua boolea 反向_04

5:Jadx-gui

下载:https://github.com/skylot/jadx/releases
 
安装:搭建了Java环境就下载no-jre-win.exe,有就下with-jre,下载之后双击就可以运行了。
 
使用:下图是主要用的上的功能。

lua boolea 反向 lua逆向工具_Wireshark_05

6:luyten

下载:https://github.com/deathmarine/Luyten/releases
 
安装:下载exe就可以使用了
 
使用:将app的apk安装包重命名为.zip,之后确定需要重新编译的类/方法所在的classes.dex,提取出目标dex使用第八点中提到的工具ApkToolBox将dex转为Jar,再使用luyten打开这个Jar就好了,非常的快。

Jadx-gui未能反编译:
throw new UnsupportedOperationException("Method not decompiled: xxx.xxx.xxx.xxx.xxx(int, int):void");

lua boolea 反向 lua逆向工具_爬虫_06

7:frida

下载:https://github.com/frida/frida/releases
 
安装:使用adb命令:adb shell getprop ro.product.cpu.abi 查看手机架构下载对于的frida版本
 
使用:https://zhuanlan.zhihu.com/p/339504595 基本使用,知乎的这篇文章介绍的很详细。

8:ApkToolBox
下载:https://github.com/qtfreet00/ApkToolBox
 
安装:解压就可以用
 
使用:…

lua boolea 反向 lua逆向工具_Wireshark_07

9、10:Python、Java环境与生产工具、Android SDK

… …

网上随便找个吧