170826 逆向-段寄存器和调用约定的补充知识点
2017-08-28 08:56
981 查看
1625-5 王子昂 总结《2017年8月26日》 【连续第327天总结】
A.逆向知识复习的新知识点
B.
每个段寄存器指向的段描述符与虚拟内存结合,形成一个线性地址,借助分页技术,线性地址最终被转化为实际的物理地址。
相比之下stdcall的代码尺寸会更小。
另外,Win32 API虽然是C编写的,但它是stdcall约定,而不是C语言默认的cdecl约定。这样可以获得更高的兼容性,使其他语言也可以调用。
C. 明日计划
PE文件头
A.逆向知识复习的新知识点
B.
段寄存器
段是一种内存保护技术,他把内存划分为多个区段,并为每个区段赋予起始地址,范围,访问权限等,以保护内存。此外,他还同分页技术(Paging)一起用于将虚拟内存变更为实际物理内存。段内存记录在SDT(段描述符表)中,而段寄存器就持有这些SDT的索引每个段寄存器指向的段描述符与虚拟内存结合,形成一个线性地址,借助分页技术,线性地址最终被转化为实际的物理地址。
调用约定
cdecl和stdcall的区别只有清理堆栈的执行者的区别:cdecl通过调用者在call后执行add esp,x来实现;而stdcall通过被调用者在函数末尾执行retn x来实现(效果相同)相比之下stdcall的代码尺寸会更小。
另外,Win32 API虽然是C编写的,但它是stdcall约定,而不是C语言默认的cdecl约定。这样可以获得更高的兼容性,使其他语言也可以调用。
C. 明日计划
PE文件头
相关文章推荐
- 逆向知识十一讲,识别函数的调用约定,函数参数,函数返回值.
- iOS高级调试&逆向技术-汇编寄存器调用约定教程
- 【黑客免杀攻防】读书笔记7 - 软件逆向工程基础1(函数调用约定、Main函数查找)
- 180104 逆向-DebugMe(3)&ARM调用约定
- Android的知识点(待补充)
- 剖析VC++函数调用约定
- “注释”部分补充知识点:
- Android--LowMemoryKiller知识点补充
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- C++调用约定和名字约定
- vim一些自己常用到的知识点,不断补充。。
- C/C++函数调用约定
- C语言函数调用约定
- CALLBACK\PASCAL等各种调用约定
- 函数调用约定和堆栈
- _cdecl与_stdcall调用约定
- C/C++:函数的调用约定(Calling Convention)和名称修饰(Decorated Name)以及两者不匹配引起的问题
- 有关一个dll的调用约定错误 2010-9-25 16:06
- Photoshop小知识点(待补充)
- __stdcall, __cdecl, __fastcall, __declspec几种调用约定及区别