|
感谢gs521848
不包含vmp 不包含vmp 不包含vmp 别无脑问我怎么没有native onCreate修复native onCreate还得了 分分钟律师函
由于可能会被针对 所以开启售价贴 10金币 相信各位不是没有 也不多 金币也没啥用
*60脱壳后 修复了native oncreate 直接替换dex 修复Application 然后打包app 会遇到闪退
这里通过adb logcat来分析问题
- static {
- StubApp.interface11(4531);
复制代码- invoke-static {v0}, Lcom/stub/StubApp;->interface11(I)V
复制代码- this.mContext = StubApp.getOrigApplicationContext(context.getApplicationContext());
复制代码- com/stub/StubApp;->getOrigApplicationContext
复制代码 这些等等一些信息 导致app无法运行
然后我们去dex搜索这些信息 发现很多条 而且寄存器都不一样 所以如何快速删除呢
这是 正则匹配就用到了
如下:
- /*删除
- invoke-static/range {v0 .. v0}, Lcom/stub/StubApp;->getOrigApplicationContext(Landroid/content/Context;)Landroid/content/Context;
- move-result-object v0
- */
复制代码- /*
- 替换:
- #disallowed odex opcode
- #invoke-object-init/range {v0 .. v0}, Ljava/lang/Object;-><init>()V
- nop
- 替换成:
- invoke-direct {p0}, Ljava/lang/Object;-><init>()V
- 替换:
- #disallowed odex opcode
- #return-void-barrier
- nop
- 替换成:
- return-void
- */
复制代码- //删除:invoke-static {v0}, Lcom/stub/StubApp;->interface11(I)V
复制代码- /*替换invoke-static {v2, v3}, Lcom/stub/StubApp;->mark(Landroid/location/LocationManager;Ljava/lang/String;)Landroid/location/Location;
- 换成invoke-virtual {v2, v3}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
- */
复制代码- invoke-static \\{([v|p]\\d+), ([v|p]\\d+)\\}, Lcom/qihoo/util/StubApp(\\d+);->mark\\(Landroid/location/LocationManager;Ljava/lang/String;\\)Landroid/location/Location
复制代码- invoke-static/range \\{([v|p]\\d+) .. ([v|p]\\d+)\\}, Lcom/qihoo/util/StubApp(\\d+);->mark\\(Landroid/location/LocationManager;Ljava/lang/String;\\)Landroid/location/Location;
复制代码 给出通用的方案:- invoke-virtual {$1, $2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;", "invoke-virtual/range {$1 .. $2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;", "", "", "", "", "", "invoke-virtual {$1, $2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;", "invoke-virtual/range {$1 .. $2}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;", "", "", "", "", "", "", "invoke-virtual {$1}, Ldalvik/system/DexFile;->entries()Ljava/util/Enumeration;", "invoke-virtual/range {$1 .. $2}, Ldalvik/system/DexFile;->entries()Ljava/util/Enumeration;", "invoke-virtual {$1, $2}, Landroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;", "invoke-virtual/range {$1 .. $2}, Landroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor
复制代码
于是 工具就出来了 工具来源于网络 本人稍作修改 匹配现在的代码调用 新版我也没去分析 所以 如果漏掉了什么 可以私信我 我去补齐 后续开源
使用方法 先反编译dex为samli 然后双击bat 然后选择反编译后samli的文件夹 就可以 由于没有介入dexlib 所以只能反编译smali后再去匹配 后续会添加dexlib 直接可以匹配dex 不需要反编译为samli了
工具处理速度取决于你samli中包含多少调用 也可以选用快速方法
点击进群学习
https://hasky.lanzouj.com/ixNBm021qywb
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +3
金币 +2
|