自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 脱壳好文章

https://www.cnblogs.com/theseventhson/p/16366038.html

2023-08-10 13:53:35 59

原创 SO解密过程

系统的soinfo还是必须的,这个其实可以换一个名字这个结构是加密与解密的一个联系,是加固过程与解压缩过程的一个联系//需要加壳基址进行重定位, 默认在PAGE_END(DYNAMIC_END)之后。

2023-08-01 10:24:11 676

原创 art虚拟机--方法成员类的关系

一、三个对象的主要成员函数1、object类,是抽象于art::mirror空间中。保证其结构的数据内存。包括类中所有的成员,field也 是offset的方式,存在于该内存空间中2、artField关键的成员,declaring_class_表示是当前属于那个类。access_flags_表示当前的成员是public/private等 field_dex_idx_是在dex文件中的索引。offset_ 是在class结构体中的偏移 SetObj/GetObj最终...

2020-11-04 11:48:58 197

原创 Art虚拟机--内置类

一、抽象的位置在art/mirror文件夹内。mirror意思是这个java类的一个c++镜像1、Object是基类2、感觉都是画画图,看看源码就明白了

2020-10-30 10:53:36 138

原创 art虚拟机内存--java对象申请的内部逻辑

一、对象如何New的1、对于对象类型,申请内存,返回mirror::Object2、对于数组,申请内存,返回mirror::Array3、最终代码里面的new函数,会让heap去申请内存

2020-10-23 17:48:52 167

原创 Art虚拟机内存抽象--heap中的空间及主要方法

一、heapheap类是art虚拟机中内存管理的主要部分之一。主要管理堆内存,之前所说的各种space,在这里被使用。被聚集在一起,提供内存管理的功能如上图所示,heap中直接有13个跟space有关的引用。其中前三个是一个Vector集合,内部包含更多的space,这里面就是对象的生成位置二、Heap分配对象的主要方法1、TryToAllocate是分配内存空间的最终实现位置,根据不同的AllocatorType,会去不同的space上面申请内存 如下代码,就是从n...

2020-10-23 15:46:15 487

原创 Art虚拟机内存抽象(2)--LargeObjectSpace

Large Object Space一、基本定义 1、live_bitmap_ 与 mark_bitmap_ 是用于垃圾收集标记的2、LargeObjectSpace分为两种,LargeObjectMapSpace与FreeListSpace mapSpace这一种,内存不是连续的 FreeListSpace这一种,内存是连续的3、看好mirror::Object *Alloc 接口,该接口就是用于内存分配对象的4、分配的对象,还是存...

2020-10-19 10:38:11 425

原创 Art 虚拟机内存抽象(1)

一、内存管理 一个很重要的问题,就是内存是如何进行分配的。如何申请的,如何释放的。针对于不同的场景,内存是如何分类的。以及,这些分类是对系统产生便利性的。二、space抽象 1、space实现了设置名字,以及设置回收策略的功能2、ContinuousSpace begin_ 开始地址,end_结束地址2、DiscontinuousSpace 的核心在于LargeObjectBitmap上面3、ContinuousMemMapAllocSpace...

2020-10-16 15:01:16 311

原创 ART虚拟机中的同步抽象

art虚拟机中的同步抽象最近,准备做一个关于解析art虚拟机的解读。算是给自己一个记录一、同步抽象架构 一图胜千言二、解析1、art虚拟机的实现,离不开互斥体,同步的因素。因为是多线程系统吗。像这样的同步机制,在linux操作系统中,就是各种个样的锁,原子体等。在java中就是sync关键字等等。2、BaseMutex是art虚拟机同步机制的一个起点,其底层的实现是linux的futex机制。这个机制的效率相对比较高。3、mutex,读写m...

2020-10-09 15:37:16 265 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除