![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆向编程
众生回避
这个作者很懒,什么都没留下…
展开
-
浅入Dalvik虚拟机
Dalvik虚拟机是Android平台的核心组件,特点如下:体积小,占用内存空间小 专有的DEX可执行文件格式,体积更小,执行速度更快 常量池采用32位索引值,寻址类方法名,字段名,常亮更快 基于寄存器架构,病拥有一套完整的指令系统 提供了对象生命周期管理,堆栈管理,线程管理,安全和异常管理以及垃圾回收等重要功能 所有的Android程序都运行在Android系统进程中,每个进程都...原创 2018-12-19 16:50:58 · 488 阅读 · 0 评论 -
超详细的Dalvik指令
Dalvik虚拟机比Java虚拟机执行速度快通过实例来对比Java字节码和Dalvik字节码的不同源码如下:public class Hello { public static void main(String[] args){ Hello hello = new Hello(); System.out.println(hello.foo(5,...原创 2018-12-26 16:10:07 · 3165 阅读 · 0 评论 -
android中的app加固
1.app加固需要3个对象:1)需要加密的源apk2)壳程序apk(负责解密源apk)3)加密工具(将源apk进行加密;和壳Dex合成新的Dex) 2.app加固需要用到的知识点:1)对dex文件格式的理解和熟悉2)熟悉apk打包流程3)熟悉反编译的流程4)对android虚拟机底层有一定的理解和apk在android平台上的加载机制 以下是参考大神博客...原创 2018-12-17 11:26:37 · 764 阅读 · 0 评论 -
通过ClassLoader动态加载了解安卓apk加载机制
ClassLoader下面的两个子类:1)PathClassLoader:只支持操作Dex文件或者已经安装的apk文件,已经安装的apk在手机的data/dalvik目录中存在缓存的dex文件。2)DexClassLoader:支持.apk、.jar和.dex文件,并且会在指定的outpath路径释放出dex文件。 项目结构:准备2个文件:1)IDynamic.java...原创 2018-12-17 18:14:04 · 398 阅读 · 0 评论 -
反编译-史上超详细的smali文件解读
Dalvik虚拟机加载的是dex文件,Dex文件是Dalvik虚拟机的可执行文件格式,dex文件很难看懂,baksmali和smali是对Dex文件的反汇编器和汇编器,通过对Dex文件反编译得到smali文件,smali文件是对Dalvik虚拟机字节码的一种解释(也可以说是翻译),并非一种官方标准语言。通过对smali文件的解读可以获取源码的信息。Dalvik指令是Dex文件最主要的组成部分:...原创 2018-12-23 13:28:15 · 8847 阅读 · 2 评论 -
readelf命令使用
readelf命令,一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a) 等包含ELF格式的文件。以下命令的使用是基于android编译出来的so文件上面去运行。1.显示elf文件开始的文件头信息: 2.以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名3.显示符号的时候,显示...原创 2018-12-19 09:36:16 · 255 阅读 · 0 评论 -
Android为什么加载不了java字节码
首先你需要了解Dalvik虚拟机以及Dalvik虚拟机和Java虚拟机的区别: 浅入Dalvik虚拟机 如果你了解了Dalvik虚拟机,那下面开始了Hello.java文件:public class Hello { public static void main(String[] args){ //System.out.print("Hello"); ...原创 2018-12-25 10:48:05 · 349 阅读 · 0 评论