android上的Java字节码注入
我意识到这是不可能的,因为Android没有JVM,但是有解决这个问题的方法吗?我需要为Android应用程序执行字节码注入操作。有什么建议吗?您不能直接将字节码注入已加载的类/方法中。但是,您可以动态创建新类,将它们写入dex文件,然后动态加载它们 有关从磁盘上的dex文件动态加载类的更多信息,请参阅post 为了动态创建一个新的dex文件,您可以考虑使用代码库的一部分,它是一个用于读取/写入dex文件的通用库android上的Java字节码注入,java,android,jvm,dalvik,Java,Android,Jvm,Dalvik,我意识到这是不可能的,因为Android没有JVM,但是有解决这个问题的方法吗?我需要为Android应用程序执行字节码注入操作。有什么建议吗?您不能直接将字节码注入已加载的类/方法中。但是,您可以动态创建新类,将它们写入dex文件,然后动态加载它们 有关从磁盘上的dex文件动态加载类的更多信息,请参阅post 为了动态创建一个新的dex文件,您可以考虑使用代码库的一部分,它是一个用于读取/写入dex文件的通用库 或者,您也可以在应用程序中包含smali,并以smali汇编格式生成类,然后直接使
或者,您也可以在应用程序中包含smali,并以smali汇编格式生成类,然后直接使用smali将它们汇编成新的dex文件。在Android中可以进行代码注入,请查看Github上托管的项目 Disabler允许在现有项目中使用代码注入动态优化、跟踪和修改Android项目。代码是动态注入的,无需修改旧功能来添加日志记录/分析或禁用流的一部分 该工具的主要功能:
在引擎盖下,它使用AspectJ和Eclipse构建机制(javac被ajc取代)您想在运行时还是编译时注入 对于编译时,有几种非常成熟的解决方案用于处理java源代码/字节码—ASM、java assist等 专门针对android,请尝试ASMDEX
你检查过这个吗?还有。@Hi,我如何使用这个项目?你有没有托管过任何示例?是的,请看这里:另外,请看一下演讲-这里有很多示例:您好,但是您支持dex格式的android应用程序动态代码注入吗?我是说没有源代码的应用程序。例如,我正在运行一个应用程序,并试图为测试目的注入我自己的类?