所以,我正在为我的Android手机开发一个“自定义设置”应用程序,在这里我需要一点帮助....这是我想做的...我希望能够在/res/xml/file.xml中设置一个Preference,它会根据xml中的某些值触发shell脚本那么,假设我的偏好是:.smali方法来触发shell脚本是.methodpublicstaticexecRootCmdSilent(Ljava/lang/String;)I#Containsallmycodetofireitoff....endmethod用法:try_start_0const-stringv2,"THE_COMMAND"invoke-s
早上好/下午好/晚上好,我是一个smali语言的新手,在编译的过程中,有一个问题我无法解决。我希望以前没有人问过这个问题,但我查看了Google和stackoverflow上的一些线程,但找不到任何解决方案,所以我假设没有。那么,会发生什么:我正在尝试修改我的应用程序的C1.smali文件,我只想更改错误的数组ID。所以我只是替换了id,我没有触及任何其他东西。修改后的smali文件:.line52invoke-virtual{p0},Lcom/one/aplication/C1;->getResources()Landroid/content/res/Resources;move-r
在下面的示例代码中,如何添加一条命令来将v0、v1等的值打印到logcat?constv1,0x7f05002eiget-objectv2,p0,Lcom/company/myapp/MainActivity;->d:Lcom/company/myapp/f;invoke-virtual{v2},Lcom/company/myapp/f;->getPanelModel()Lcom/company/myapp/h;move-result-objectv2invoke-virtual{v2},Lcom/company/myapp/h;->b()Imove-resultv2invoke-vi
smali中的这一行是做什么的?我一直在谷歌上搜索.restart的东西,但没能找到任何关于它的信息。.restartlocalv3#i:I 最佳答案 这相当于dex文件中debug_info项中的“DBG_RESTART_LOCAL”操作码。来自http://s.android.com/tech/dalvik/dex-format.html:re-introducesalocalvariableatthecurrentaddress.Thenameandtypearethesameasthelastlocalthatwaslive
当我在idea或AndroidStudio上使用Smalidea调试smali时,我得到一个错误,说Smalidea抛出一个未捕获的NullPointerException,并且在变量中它说“等待直到最后一个调试器命令完成”,但是20几分钟后,什么也没有发生。谁能告诉我如何解决它? 最佳答案 我知道这是一个老问题,但我有一个不同的修复程序解决了同样的问题,这可能对其他人有用。我周围有很多旧断点。一旦我删除了所有内容,AndroidStudio的所有问题都消失了,“等待直到最后一个调试器命令完成”,永远是“收集数据...”,IDE也变
我使用baksmali反汇编了一个Android应用程序,并研究了生成的smali代码。其中一个类包含以下行:.localv1,"future":Lcom/android/volley/toolbox/RequestFuture;,"Lcom/android/volley/toolbox/RequestFuture;"我不确定这行代码的含义。是否v1包含RequestFuture,对应于变量future在原始代码中?(即原始代码是:RequestFuturefuture;吗?)还是有所不同? 最佳答案 是的,这是可以选择存在的调试信
我已经从GooglePlay下载了一些Android应用程序。我通过逆向工程工具apktool得到了Smali代码。我想为这些应用程序生成调用图。我在stackoverflow和Google上看到过很多链接,大多数建议的工具要么用于c/c++,要么用于Java,它们需要我不知道的源代码当然有。有没有办法自动生成调用图?谢谢。 最佳答案 apkinspector-http://code.google.com/p/apkinspector/该项目的目标是帮助分析师和逆向工程师可视化已编译的Android包及其相应的DEX代码。APKIn
我在Dalvik字节码上编写检测,它为各种方法调用条目执行一些日志记录。具体来说,在各种方法调用站点,我将插入一组收集参数的指令,将它们放入Object[]数组中,然后将其传递给日志记录函数。一切都很好,我已经实现并克服了大多数应用程序的所有问题。但是我遇到了一个特别难以理解的Dalvik验证器错误:java.lang.VerifyError:Verifierrejectedclassio.a.a.g:voidio.a.a.g.r()failedtoverify:voidio.a.a.g.r():[0x570]registerv5hastypeReference:java.lang.O
我正在使用dexlib2通过一个jar实用程序重写现有的apk。我想用我自己的指令更改一条指令。它基本上是返回一些对象,我想用另一个返回不同对象的方法替换它。它能够替换方法,但是当我查看更新的dex时,我可以看到下一行.localv1,manager:Lblah/KeyguardManager;我要替换的代码KeyguardManagerkeyguardManager=(KeyguardManager)getSystemService(KEYGUARD_SERVICE);上面应该替换的代码:Managermgr=Manager.getInstance(this)我已经使用getInst
我想转换/检测Dex文件。转换的目标包括测量代码覆盖率。请注意,源文件不可用。因此检测Dex是唯一的选择。我想知道是否有任何现有代码库可以作为示例来编写工具来实现我的目标。我知道Smali项目和许多其他基于Smali的项目。但是,这些项目都不是我的目的的好例子。我正在寻找自动转换smali代码或dexlib表示的代码,从中生成smali。出于我的目的,后一个选项是首选,因为可以避免生成smali的开销。 最佳答案 代码很多,但是dx的DexMerger是一个转换dex文件的示例程序。它需要猜测输出的大小才能使前向引用起作用,这使得它