
指令结构
文章平均质量分 69
HNHuangJingYu
看看我能发几篇文章
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
交叉编译(NDK)
交叉编译是指在一种计算机体系结构上编译和构建应用程序,但是生成的可执行文件和库是针对另一种不同的体系结构,比如等。GNU 工具链:比如编译ARM64架构可以使用工具,并可以使用工具来进行调试,一般用qemu来运行多架构的可执行文件然后使用进来远程调试Clang/LLVM 工具链:Clang/LLVM 工具链支持许多不同的架构和操作系统Android NDK:专门为 Android 平台提供的交叉编译工具集。使用的编译工具链为Clang/LLVM。原创 2023-03-15 22:32:15 · 1044 阅读 · 0 评论 -
Arm汇编---寄存器
----------------------------------------- 三、段寄存器 ----------------------------------------------------------------------------------------- 四、标志位 -----------------------------------------------段寄存器是根据内存分段的管理模式而设置的。flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。原创 2023-01-18 17:45:23 · 1918 阅读 · 1 评论 -
C\C++中结构体-字节对齐
内存对齐是以内存占用最长的基本数据类型作为对齐单位的,且对齐后的总大小是最长字节的倍数。数据结构的各类型数据的顺序也会影响内存占用大小,所以一般顺序都是从小->大的顺序进行结构体成员添加,这样就可以节省内存空间了。(相邻的成员类型占用长度不要多大,如(char -> double就浪费了7个字节))原创 2023-01-18 17:44:43 · 355 阅读 · 0 评论 -
汇编Assembly
特点环境下说使用simd的一些优化操作,就需要使用simd指令集来操作数据,从而实现快速计算,那么此时的汇编代码块就起到了一个处理数据集功能的作用。这一块就是构造函数调用时的参数,上面我声明了必须是64bit的系统,因为rdi、rsi、rdx就是64bit ELF文件中的常用寄存器。 那么这里就很容易理解了其实就是构造了3个参数(1,message,13),这里的message就是一个字符串常量的地址。在进入到另一个函数地址时,会首先进行一个开栈操作,至于开多少取决于你的函数代码块有多少和编译器。原创 2023-01-18 17:44:09 · 1063 阅读 · 0 评论 -
各类bin介绍
也是双链表结构,它在bins处于bin64~bin126,那么64bit中最小large bin为 2 * 8 * 64 = 1024byte,哎,这个时候前面说的fd、bk、fd_nextsize、bk_nextsize就来到用武之地了,为了加快检索速度,fd_nextsize和bk_nextsize指针会指向一个大小与自己不一样的chunk,故在加入了大小不同的chunk时,这两个指针才会被修改。由free chunk组成的链表,当用户再次申请时从中寻找合适的chunk返回给用户。原创 2023-01-18 17:43:18 · 2236 阅读 · 0 评论 -
堆漏洞要点
重点:fast、unsort bin拿出来的chunk它的fd和bk会被保存 ->例题(ByteCTF/mulnote、攻防世界noleak)原创 2023-01-18 17:42:51 · 287 阅读 · 0 评论