因为相信, 所以看见
答疑,就是在每周四,把问的比较多的,统一回答下。
写文章也会比私信回复更详细些。
我本来并不知道,文件放错了这件事。
直到被一个大佬提醒。
然后我才发现云盘文件夹里,加壳前,加壳后的apk并不对应。
两个apk都不是一个包名, 一个是 test_shell , 一个是 test_ndk。
尴尬了。
更尴尬的是,我都找不到最初视频演示的那个加壳文件了。。。。
我去梆梆官网找加壳记录,去下载加固后的文件,
点击下载加固包,来到了这个页面。
一口血吐在屏幕上。
然后找了半个小时也没找到原件,视频演示的手机都被我重新刷过了。
尴尬。
这里要拿样本演示的大佬们要失望了,我找不到最初的那个样本了。
在线鞠躬。
在之前的youpk脱壳视频里,这一步是被我忽略的一步。
因为前面几步搞完,就可以看到dex了。
最后一步适用于,加固厂商有对抗的情况。
某些厂商对这种脱壳机是有对抗手段的,对抗手段就是,并不是一调用方法就解密,而是执行几条指令再解密。
这一步就是应对厂商的这一招。
作者最后使用了,dexfixer ,把还原的dex和dump下来的codeitem合并。
这样,即使厂商执行了几条指令再解密,你也能有个完整的dex。
dexfixer.jar 原件在作者的云盘。
实例演示:
演示文件:
演示用的apk在云盘里,直接回复 shell
就可以下载了
包名:
com.dmy.jiagushell
youpk使用完整步骤:
第1步:配置文件写入包名
往配置文件 /data/local/tmp/unpacker.config 写入要脱壳的包名。
第2步:启动对应app
3.把 /data/data/包名/unpacker/ 目录 从手机拉取到电脑上
4.调用修复工具 dexfixer.jar 进行修复
两个参数,
第一个为dump文件目录(必须为有效路径) 上一步搞出来的 unpacker目录
第二个为重组后的DEX目录(不存在将会创建 名字随便起)
java -jar dexfixer.jar /path/to/unpacker /path/to/output
执行这行命令前,请保证你有安装 java
这里 我的java 版本是 1.8
保证你的环境有java之后
这里就要新建一个目录 存放修复的dex
我这里创建的目录名是 out
执行命令:
java -jar dexfixer.jar ./unpacker/ ./out/
可以看到 out目录下 这里已经有修复的dex
脱壳前的 的 dex 和 smali代码:
反正啥信息都没有就是了,全是nop一看就是被抽空的
脱壳后的dex 如下:
把 dexfixer.jar 放入 jadx, 简单看看他的逻辑
可以看到 最关键的一个类是 DexMerger
merger 翻译过来是合并的意思。
这里的代码,大概逻辑是, 把 dex目录下的 dex 和 method下的codeitem.bin 做了一个合并修复。
写出了一个新的dex。
dexfixer.jar下载
这里的 dexfixer.jar 建议去作者的云盘目录去下载
百度云:https://pan.baidu.com/s/1ySSy2vNW5TyFjH1LNAcd5w
提取码:vseh
当然我也 传到我的云盘了,大佬们直接在公号回复 shell
也可以直接下载
王某某 21.0812 于十平米出租屋。
关于作者:
一个乙方安全公司搬砖的菜鸡,移动安全从业者。
最近忙着找女票,忙着在b站当扑街up主。
b站/公众号 : 移动安全王铁头
希望和大佬们一起学习,一起成长
点个
在看
你最好看
本文始发于微信公众号(移动安全王铁头):【周四答疑】关于脱壳机 文件错误 和 修复问题
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论