debug版函数初始化入口 0xcc
在VC++编写的程序编程成Debug版,反汇编代码,函数入口处经常看到如下一段代码:
00EA14E0 55 push ebp
00EA14E1 8B EC mov ebp,esp
00EA14E3 81 EC C0 00 00 00 sub esp,0C0h
00EA14E9 53 push ebx
00EA14EA 56 push esi
00EA14EB 57 push edi
00EA14EC 8D BD 40 FF FF FF lea edi,[ebp-0C0h]
00EA14F2 B9 30 00 00 00 mov ecx,30h
00EA14F7 B8 CC CC CC CC mov eax,0CCCCCCCCh
00EA14FC F3 AB rep stos dword ptr es:[edi]
其中主要分为3部分,最上面3行完成本函数局部变量栈空间的开辟,中间部分保存需要保护的寄存器(这部分并非必须),最后4行完成栈空间所有字节初始化为0xCC。
0xCC对应汇编代码 int 3,即软中断。
一方面,0xCC可以为某些检查提供标记(_RTC_CheckStackVars);另一方面,在栈操作错误或调试汇编代码(如使用OD调试shellcode)时可以对感兴趣的逻辑进行细致的分析,这通常可以通过加入
__asm {
int 3 ; // 或 _emit 0xcc
};
来加入断点。
debug版函数初始化入口 0xcc相关推荐
- Linux内核深入理解系统调用(1):初始化-入口-处理-退出
Linux内核深入理解系统调用(1):初始化-入口-处理-退出 rtoax 2021年3月 1. Linux 内核系统调用简介 这次提交为 linux内核解密 添加一个新的章节,从标题就可以知道, 这 ...
- main函数的入口函数
操作系统装载程序之后,首先运行的代码并不是main的第一行,而是某些别的代码,这些代码负责准备好main函数执行所需要的环境,并且负责调用main函数, 运行这些代码的函数称为入口函数或入口点(Ent ...
- 同时生成 Release版和Debug版DLL的方法
同时生成 Release版和Debug版DLL的方法 warning LNK4070的解决办法 重命名了一个MFC常规DLL的工程文件(VS C++ 2005编译环境),结果在编译时出现这样的警告:1 ...
- GPIO_init()函数初始化详解
目录 1.GPIO_init()函数初始化示例 1.1 GPIO_InitTypeDef 1.2 GPIO_Init(GPIOB, &GPIO_GPIO_InitStructure) 1.3 ...
- 关于Debug版正常运行,release版运行崩溃的问题
关于Debug版正常运行,release版运行崩溃的问题 通常情况下,Debug版用于程序的调试优化,尽可能将遇到的BUG找到并解决掉: 这样编译出的Release版才可能有效可靠的运行.然而如果编译 ...
- C语言编程的Debug版和Release版
C语言编程的Debug版和Release版 简单的来说:Debug版是调试版,可以调试,让程序员用的.Release版是发行版,是用户用的,不能调试. 专业解释 Debug版: Debug 是&quo ...
- 区分Debug版还是Relase版
// test.cpp : 区分Debug版还是Relase版 // #include "stdafx.h" //提示使用Debug环境会定义宏_DEBUG int _tmain( ...
- 二维数组传入函数_C++二维动态数组memset()函数初始化
来源:https://blog.csdn.net/longhopefor/article/details/20994919 先说说memset函数: void *memset(void *s,int ...
- 旧的非flash版Metalink的入口
很多人怀念那个界面十分古典.可以迅速打开的html版Metalink,在Oracle让My Oracle Support来代替Metalink后仍提供了一个旧版Metalink的入口,很多人在沿用这个 ...
最新文章
- java.io.FileNotFoundException: /storage/emulated/0/one.mp4 (Permission denied)
- 一周内咸鱼疯转2.4W次,最终被所有大厂封杀!
- MyBatisPLus3.x中代码生成器自定义数据库表字段类型转换
- Rust 编程语言极简教程 --- 实例学习
- 【翻译】C#表达式中的动态查询
- workbench提示工作负载高度不平衡_功率因数负载组
- 第一个程序python-HelloWorld
- 第一章节 ASP.NET Web应用程序基础(二)
- tp6 workerman
- SAP VK11 报错“条件不能创建在分销渠道 10 中”
- 中科院信工所经验_信工所六室面试经历
- 算法原理系列:红黑树
- Random Projection 随机投影法
- COPY NAV导航网格寻路(4) -- 生成nav网格
- idea 选中代码生成方法
- 操作系统内存换入-请求调页---14
- 名企笔试真题精选 (六)
- 文末送书 | 李航老师新作!机器学习经典著作《统计学习方法》全新升级
- 趣图:众人眼中的深度学习
- linux repo