glibc中的内存分配是由ptmalloc2
实现的,ptmalloc2是dlmalloc(General purpose allocator)的分支,并加入了线程支持。
System Calls malloc内部会调用brk或mmap系统调用。
Threading ptmalloc2中,当两个线程同时调用malloc,内存会立即得到分配,因为每个线程有一个单独的堆段,因此free list
数据结构中保存的这些堆也是分开的。这种为每个线程分配一个单独的堆和free list数据结构的行为称为per thread arena
。
Dalvik虚拟机执行流程
发表于
Edited on
trace使用
(1) 在代码中加入调试命令
1 | package com.example.dalviktestapp; |
ELF: Executable and Linking Format part1
发表于
Edited on
Linux_x64 PWN
发表于
Edited on
x86 Memory Leak在不获取libc.so的情况下进行ROP攻击
发表于
Edited on
使用makefile
发表于
Edited on
编译Android6.0.1源码,烧录到nexus5真机上
发表于
Edited on
1.git配置
1 | $ sudo apt-get install git |
C++动态内存与智能指针
发表于
Edited on
C++中,动态内存的管理是通过:new
在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete
接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。
动态内存很容易出问题,因为确保在正确的时机释放内存很困难。有时会忘了释放内存,产生内存泄露;有时还有指针引用内存就释放了它,会产生UAF。
Android逆向基础
发表于
Edited on