硕士生
小佬
 
- 金币
- 7002
- 好评
- 162
- 信誉
- 270
  

|
本帖最后由 JiGuro 于 2025-7-20 22:45 编辑
2025.7.20
个人总结了一点数字加固特征,内含正则表达式,可直接搜索替换,手撕修复时应该能派上点用场。
评论自取,仅供学习
特征一:
invoke-static/range {v0 .. v0}, Lcom/stub/StubApp;->getOrigApplicationContext(Landroid/content/Context;)Landroid/content/Context;
move-result-object v0
特征一正则表达式:
^\s+invoke-static/range\s+\{[pv]\d+\s+\.\.\s+[pv]\d+\},\s+Lcom/stub/StubApp;->getOrigApplicationContext\(Landroid/content/Context;\)Landroid/content/Context;\r?\n\s*\n\s*move-result-object\s+[pv]\d+
特征二:
invoke-static {p0, p1, p2}, Lcom/stub/StubApp;->interface24(Landroid/app/Activity;[Ljava/lang/String;I)V
特征二正则表达式:
^\s+invoke-static\s+\{[pv]\d+(?:\s*,\s*[pv]\d+){2}\s*\},\s*Lcom/stub/StubApp;->interface24\(Landroid/app/Activity;\[Ljava/lang/String;I\)V
特征三:
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
(这个特征出现次数非常多,smali均相同,就不提供正则表达式了)
特征四:
const v0, 0x8b2
invoke-static {v0}, Lcom/stub/StubApp;->interface11(I)V
特征四正则表达式:
^\s*const\s+(v\d+)\s*,\s*(0x[0-9a-f]+)\s*\r?\n\s*invoke-static\s+\{\s*\1\s*\}\s*,\s*Lcom/stub/StubApp;->interface11\(I\)V\s*$
特征五:
invoke-static {v1}, Lcom/stub/StubApp;->interface12(Ldalvik/system/DexFile;)Ljava/util/Enumeration;
特征五正则表达式:
^\s+invoke-static\s+\{[pv]\d+\},\s*Lcom/stub/StubApp;->interface12\(Ldalvik/system/DexFile;\[Ljava/util/Enumeration;
可能还有其他特征,但目前只分析了这么多,应该包含了绝大部分。
先脱壳出dex,再删除含有stub的原dex。
然后在脱壳后的dex中搜索正则表达式直接替换为空即可。
本人的正则表达式不怎么好,所以写的很乱。目前只在MT上成功匹配,np好像会报错。
当然,这只是修复数字加固的重要步骤之一,反正抽取的onCreate我目前是搞不定了 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|