随笔分类 -  逆向知识杂记

摘要:变量分类: 1.全局变量 2.全局静态变量 3.局部变量 4.局部静态变量 5.寄存器变量 register 变量类型 作用域 存储空间 生命周期 全局变量 整个程序可见 静态区(./data./bss) 整个程序运行期间 全局静态变量 整个程序可见 静态区(./data./bss) 整个程序运行期 阅读全文
posted @ 2020-09-12 11:04 Flag{Just_For_Fun} 阅读(149) 评论(0) 推荐(0)
摘要:自然对齐规则: 1.数据成员对齐规则 在默认情况下,各成员变量存放的起始地址相对于结构的起始地址的偏移量sizeof(基本类型)或其倍数。如果该成员为非基本成员,则为其子成员中最大的基本类型的整数倍。 2.整体对齐规则 结构的总大小也有个约束条件:最大sizeof(基本类型)的整数倍。 为什么对齐? 阅读全文
posted @ 2020-09-07 18:10 Flag{Just_For_Fun} 阅读(270) 评论(0) 推荐(0)
摘要:以下数据类型在Windows7 x32 SP1 和 Windows10 x64下统计。 Windows7 x32 SP1 使用VC6++ Windows10 x64 下使用Visual Studio2019(x64版本) Linux平台(Ubuntu) 数据类型 x32 x64 (Linux)Ubu 阅读全文
posted @ 2020-09-07 10:21 Flag{Just_For_Fun} 阅读(217) 评论(0) 推荐(0)
摘要:调用者--调用函数的一方 被调用者--被调用的函数 原有三种方式: __cdecl,调用者负责清理栈空间 __stdcall,被调用者负责清理栈空间 __fastcall,前两个参数必须由寄存器ecx, edx进行传递。 x86(x32)默认使用的cdecl方式进行函数调用 x64 废弃了x86(x 阅读全文
posted @ 2020-09-04 12:31 Flag{Just_For_Fun} 阅读(187) 评论(0) 推荐(0)
摘要:hello world.c #include <stdio.h> int main() { printf("hello world"); return 0; } 反汇编 1: #include <stdio.h> 2: int main() { 0040D740 push ebp 0040D741 阅读全文
posted @ 2020-08-14 10:44 Flag{Just_For_Fun} 阅读(329) 评论(0) 推荐(0)
摘要:转载:C语言整数类型在X86和X64下的字节大小 https://www.cnblogs.com/ryzz/p/9418171.html 一些补充: 声明 字节 位数 x64寄存器 word 2 16 ax(rax中ax部分) dword 4 32 eax(rax中eax部分) 阅读全文
posted @ 2020-04-12 22:03 Flag{Just_For_Fun} 阅读(208) 评论(0) 推荐(0)
摘要:|63...|31...|15...|7...0| | | | | | | AL | |AH | | AX | | EAX | | RAX | x64扩展了x86的8个通用寄存器并新增加了8个新的64位寄存器。 这些64位寄存器将以字母r开头。 所以原先的eax寄存器被命名为rax。 新增加的64位 阅读全文
posted @ 2020-04-12 21:49 Flag{Just_For_Fun} 阅读(1280) 评论(0) 推荐(0)