Abner的博客

逆向环境-杂

· 416 words · 2 minutes to read
Categories: 逆向

USB找不到设备 🔗

windows 环境 🔗

  1. 找不到设备:右键电脑属性->设备管理器->便携设备->属性->详细信息->属性(硬件id),把硬件id复制到C:\Users\xxxx.android\adb_usb.ini文件中,填入0x12345,12345替换成设备ID,然后重启adb服务

macOS环境 🔗

  1. 执行system_profiler SPUSBDataType里面找到Android的Vendor ID
  2. 将vendor id的值写入 /User/你对应的用户文件夹/.android/adb_usb.ini文件。若该文件不存在,则新建一个。
  3. adb kill-server && adb start-server && adb devices
  4. 华为手机无法识别:https://www.jianshu.com/p/8c19fb78a680
  5. 首先关闭macsip黑苹果在recovery模式下去关闭也可以,mac夜神abd找不到,找到app包下面的adb命令:/app包路径/adb connect 127.0.0.1:62001 连接以后,可以发现设备了

面具root隐藏 🔗

  • 首先:移除系统的支付APP检查,例如miui的手机管家->支付保护中心关闭APP保护,
  • 方案一:面具设置,新版的magisk已增加了zygisk排除列表,我们可以通过这个排除列表去排除需要隐藏的应用,打开magisk,点右上角的设置图标,在设置里找到zygisk打开,然后打开遵循排除列表,在配置排除列表里把需要隐藏的应用打上钩。
  • 方案二:(建议使用适用APP更广)如果有些APP还是无法隐藏,面具里面安装Shamiko插件,https://github.com/LSPosed/LSPosed.github.io/releases ,在使用Magisk官方版24+开启Zygisk和遵守排除列表隐藏root之后,排除列表内被隐藏root了的app就没法在LSP模块内勾选了,会显示在排除列表内,然后呈灰色状态无法勾选。使用Shamiko的时候必须关闭遵守排除列表这个开关。,后续在配置排除列表里把需要隐藏的应用打上钩。

面具root后过环境检测 🔗

  • 关闭magisk的Zygisk开关,刷入Zygisk-Next模块,代替面具的Zygisk模块,重启手机
  • 刷入Shamiko模块,重启手机
  • 刷入LSPosed框架模块,重启手机
  • 刷入PlayIntegrityFix模块,注意这个模块需要开启翻墙,隐藏bootloader环境检测,重启手机
  • 然后在magisk排除列表去排除需要隐藏的应用,如momo检测就可以过了
  • 【注意:如果TEE受损】:刷入Tricky-StoreTrickyAddonModule增强模块,这个模块可以解决某些设备上密钥证明不完整或损坏的问题

抓包 🔗

简单APP网页调试 🔗

  • chrome浏览器输入:chrome://inspect/#devices
  • 安卓开启USB调试

证书安装 🔗

  • 说明:安卓7.0以上,需要解锁BL和root权限
  • Charles配置 help->SSL Proxying->install charels root cer 安装电脑证书,mac证书查看详情 信任证书
  • 保存证书配置 help->SSL Proxying->save charels root cer 安装电脑证书,mac证书查看详情 信任证书
  • 转换证书:openssl x509 -inform DER -in charles-ssl-proxying-certificate.cer -out imac.crt
  • 多格式转换命令:openssl x509 -inform PEM -outform DER -in {yourcert.pem} -out {yourcert.crt}
  • charles无法下载证书:证书保存到本地,adb push 文件路径 /sdcard/Download; 设置—更多设置—系统安全—加密与凭据—从存储设备安装证书,先清除所有凭据,后选择SD卡安装
  • 安装证书:
    • 进入以下目录:/data/misc/user/0/cacerts-added 可以看到刚才安装的证书.0结尾的
    • 将system分区挂在为可读写 mount -o rw,remount /system , 如果有的版本报错可以替换 mount -o rw,remount /
    • cp /data/misc/user/0/cacerts-added/xx.0 /system/etc/security/cacerts/ ,并将权限改成644,(chmod -R 644 /system/etc/security/cacerts/xx.0),重启设备
  • 完成以上配置,大部分APP可以抓包了,如果出现反抓包,看下面解决办法。

(反抓包解决)iptables + redsocks2 + Charles 透明代理抓包 🔗

先打开你的APP,然后ps -ef | grep com.xxx.xxxxx命令找到有你的应用包名那一行,第一列就是uid 通常你看到的是u0_a428这样的,那么后面的命令,uid相关的可以写成u0_a428,也可以写成10428

  • 透明代理下载,https://fh0.github.io/assets/android-redsocks2.tgz , 把redsocks.conf和redsocks2_arm64推送到手机/data/local/tmp
  • redsocks.conf配置如下 ,其中bind就是透明代理地址,relay就是Charles的代理地址 ,注意配置文件的每一对{}后面都应该有一个空行,否则会提示unclosed section
base {
    log_debug = off;
    log_info = on;
    log = stderr;
    daemon = off;
    redirector = iptables;
} 

redsocks {
    bind = "127.0.0.1:16677"; #本地透明代理地址
    relay = "192.168.3.141:7777";  # Charles Socks-Proxy代理地址
    type = socks5;
    autoproxy = 0;
    timeout = 13;
} 
  • 推送
adb push redsocks2_arm64 /data/local/tmp/
adb push redsocks.conf /data/local/tmp/
adb shell 
su
chmod +x /data/local/tmp/redsocks2_arm64
  • iptables配置:
    • 保存开机后的iptables方法:iptables-save > /data/local/tmp/iptables.rules;
    • 恢复方法: 重启手机
    • 配置转发
      • (全转发)配置全转发iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16677, 作用是:将uid为10428所请求的在0-65535端口上的tcp流量,转发到127.0.0.1:16677,但是排除了来自127.0.0.1的请求
      • (按端口转发)配置端口抓包,如80,443iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:16677
      • 删除规则iptables -t nat -D OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16677
  • 启动 cd /data/local/tmp/ && ./redsocks2_arm64
  • 查看代理工具的socks代理流量

常用工具下载地址 🔗

  • 无需root沙箱抓包工具:https://github.com/android-hacker/VirtualXposed
  • JustTrustMe:https://github.com/Fuzion24/JustTrustMe
  • 安装搞基助手apk:https://github.com/liuran001/GJZS
  • SSLUnpinning:https://github.com/ac-pm/SSLUnpinning_Xposed\
  • frida: https://github.com/frida/frida/releases
  • 反编译工具:https://github.com/iBotPeaches/Apktool/releases

mac安装集合工具 🔗

特别:mac在PD虚拟机安装win10中的模拟器 🔗

win管理员运行 win10 转发端口

netsh interface portproxy add v4tov4 5555 127.0.0.1 5555 #模拟器端口转发到外网
netsh interface portproxy del v4tov4 listenport=5555 #删除端口转发

#firda抓包
adb.exe forward tcp:27042 tcp:27042
adb.exe forward tcp:27043 tcp:27043
netsh interface portproxy add v4tov4 27042 127.0.0.1 27042 #firda抓包转发外网
netsh interface portproxy add v4tov4 27043 127.0.0.1 27043 #firda抓包转发外网

雷电模拟器
emulator-5554   device  实际端口:5555
emulator-5556   device  实际端口:5557  ,雷电是+2的端口递增

win查看端口转发 netsh interface portproxy show all mac 远程连接pd中win10的模拟器 adb connect 192.168.0.3:62001

adb导出命令 🔗

  • 打印出来所有安装到手机上的APP包名 : adb pm list package
  • 找出安装后的包名应用的apk所在位置 : adb pm path com.ccb.longjiLife
  • 下载:adb pull /data/app/com.ccb.longjiLife-MXDTkEBGW2u_cAwg20D4JQ==/base.apk /Users/abner/Downloads/apk

刷入twrp操作 🔗

红米note9 5G版本操作 🔗

  1. 手机进入fastboot
adb reboot bootloader
  1. 刷入 TWRP
fastboot flash recovery /Users/abner/Downloads/RedmiNote95g-twrp.img
  1. 为防止重启手机 MIUI 自动替换回官方 Recovery,按住手机音量上键,命令行同时执行
fastboot reboot recovery
  1. 在进入 TWRP 后,挂载“系统分区为只读”。这里滑动按钮以允许修改 ,不然不能禁止 MIUI 替换回官方 Recovery。
  2. 下载Magisk zip包,下载apk文件修改为zip后缀,并推送到手机,必须在external_sd路径下不可以修改,因为sdcard目录加密是乱码
adb push Magisk-v28.1.zip /external_sd/
  1. 乱码解决,双清data的cache,然后安装Magisk-v28.1.zip。由于 MIUI 在启动时会检查 System 分区完整性,上一步 TWRP 修改了 System 分区,需要通过刷入 Magisk 移除启动验证。

Tags