概述 _declspec(naked)修饰可以生成一个“裸”函数, 使用后C编译器将生成不含函数框架的纯汇编代码,裸函数中什么都没有,所以也不能使用局部变量,只能全部用内嵌汇编实现。 裸函数的定义 _declspec(naked) 的介绍: _declspec(naked),就是告诉编译器,在编译的 ...
分类:
其他好文 时间:
2019-09-24 07:54:43
阅读次数:
138
vs2019里写代码注入,本来用裸函数写的就像这样: 但是当我想给这个函数传入一些参数的时候就不得不抛弃裸函数,用 这种远程线程回调函数写,可是这样一写,原程序一直崩溃,一直找不到原因,后来看到了一个帖子,去od里看了看它写入的代码,发现问题出在vs2019的几个编译选项里了如下: 把安全检查与基本 ...
分类:
编程语言 时间:
2019-05-26 19:56:53
阅读次数:
173
1 说明 指定裸函数编写的函数,编译器生成不带任何多余代码。 利用此功能,可以使用内联汇编程序代码编写自己的 prolog/epilog 代码序列。 裸函数对于编写虚拟设备驱动程序特别有用。 2 练习目的 熟悉堆栈结构 参数、局部变量的位置 返回值存储的位置 3 代码实现 ...
分类:
其他好文 时间:
2018-02-18 10:31:48
阅读次数:
609
先上代码:naked.cpp:#include "stdafx.h"extern "C" int __declspec(naked) add2(int x,int y) //引用说明支持跨文件的调用{ __asm{ //函数的环境初始化(升栈、保护现场、填充缓存区) ... ...
分类:
编程语言 时间:
2017-06-22 00:18:45
阅读次数:
174
先写一段代码,通过汇编代码进行理解。//这是普通的函数#include void __declspec(naked) Function(){}void CommonFunction(){}int _tmain(int argc, _TCHAR* argv[]){ Function(); ...
分类:
其他好文 时间:
2015-06-04 13:32:19
阅读次数:
186
接上文:http://blog.csdn.net/prsniper/article/details/40653235
类delete就不说了,有兴趣的朋友自己跟踪看看吧,提示一下:析构函数也有参数和返回值.
下面我们看下裸函数,裸函数从执行效率上是可以与汇编语言媲美的,然而它不太好逆过来说,我们就顺着说吧
前面说得构造函数的临时堆栈,恢复寄存器等等,有人给了个名称叫prolog和ep...
分类:
编程语言 时间:
2014-10-31 23:41:22
阅读次数:
351