我已经解码了apk(项目A),并希望从项目B中注入smali代码 。代码是一行代码,引用当前活动布局的根id。项目B的单行代码java代码如下:
ViewGroup view = (ViewGroup) findViewById(android.R.id.content);
编译并反编译回smali:
const v1, 0x1020002
invoke-virtual {p0, v1}, Lbiz/mardal/dangler/MainActivity;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/view/ViewGroup;
所以我将这个smali片段注入我的smali项目A并成功构建,但执行崩溃了。我怀疑const v1, 0x1020002
并未引用android.R.id.content
,而是引用其他内容。所以v1确实包含另一个值,并且最像是不同的类型,它被传递到findViewById()方法。哪个崩溃了。
任何想法如何使用smali获取根布局ID。任何解决方法都赞赏!