摘要:
http http(超文本传输协议)是应用层通讯协议,http将数据转送给下层的tcp。客户端与服务端之间通过http协议进行传输时数据都是以明文的形式存在,攻击者很容易就可以在传输过程中截获传送的数据这样是很不安全的。 http向https演化的过程 为了解决上述过程中明文传输的问题,通过对称加密 阅读全文
摘要:
# dex文件格式 dex是android虚拟机的可执行字节码文件,java文件经过javac编译成class文件,class文件又被dx处理后生成dex文件。 ![](https://img2022.cnblogs.com/blog/2052882/202209/2052882-202209101 阅读全文
摘要:
# windows写时复制流程 ## 处理流程 ![](https://img2022.cnblogs.com/blog/2052882/202209/2052882-20220909175411955-985592121.png) 1.当指令试图写入一条地址时,cpu会先判断此虚拟地址对应的PTE 阅读全文
摘要:
实际没必要单单扩大text节区的大小,因为一般text节区所在的segment段一般是可读可执行的,所以认为此段为text段,可以直接增加ELF文件中此段的大小。 # ELF文件扩大text节区 ## 不移动其他PT_LOAD段 首先定位到text节区所在的PT_LOAD段,然后找到text节区的结 阅读全文
摘要:
返回局部变量地址 char* GetMemory(void) { char p[] = "hello world"; return p; } int main() { char* str = NULL; str = GetMemory(); printf(str); return 0; } GetM 阅读全文
摘要:
在linux内核把ELF文件加载到内存中时,如果此ELF含有动态链接信息`linker`就会去解析并加载相应的依赖库。ELF动态链接信息保存在`.dynamic`节区中,类型为`DT_NEEDED`的项描述了对应的依赖库信息。 ![](https://img2022.cnblogs.com/blog 阅读全文
摘要:
arm处理器拥有多种指令集,不同的架构支持不同的指令集。 armeabi-v7a是一个32位的架构,其支持thumb-1,thumb-2,arm三种指令集。 thumb-1和arm thumb-1指令集是arm指令集的子集,thumb-1指令长度为16位(两个字节),arm指令为32位(4个字节)。 阅读全文
摘要:
编译器 一般编译器分为前端,中间优化和后端三部分。前端进行语法分析,中间进行优化后由后端编译成对应平台(arm,x86)的汇编代码(机器码)。现在主流的编译器有linux平台下的gcc 和 llvm-clang,以及windows平台下的msvc编译器。 LLVM gcc编译器虽然强大但是有一个缺点 阅读全文
摘要:
ollvm官方只更新维护到llvm的4.0版本,github上有大佬移植了高版本的llvm,链接为:https://github.com/heroims/obfuscator/tree/llvm-9.0.1 编译ollvm9.0.1 编译环境和ollvm4.0的编译环境一样,采用mingw64 + 阅读全文
摘要:
说一下我的艰辛历程,整整编译了三四天,要么编译出来不能用,要么编译不了。。。。。。 # 工具 * mingw64:gcc编译器的windows版本 * ollvm4.0:官方版 * ndk:android studio中下载的ndk 16.1.4479499 # 设置环境 * 下载mingw64编译 阅读全文