__declspec(naked)(裸函数)和__asm

裸函数 __declspec(naked),C语言是怎么变成汇编的,用裸函数加汇编实现一个最简单的加法函数 裸函数: 裸函数定义:__declspec(naked) 加汇编代码RET 可以正确返回,否则报错 #include <stdio.h> // 裸函数 void __declspec(naked)Plus() { __asm { ret } } int main() { Plus(); return 0; } 用裸函数加汇编实现一个加法 #include <stdio.h> // 裸函数 int __declspec(naked)Plus(int x 阅读详情

__declspec(naked) 是告诉编译器 不要对函数进行优化  函数的所有实现包括堆栈的平衡   参数的压栈 ebp的赋值 还原 都要我们来做

甚至是ret / ret n  都要我们来做

 

演示代码

013-【直播】劫持注入(郁金香).c d3d9劫持dll 示例代码 //保持原来d3d9.dll的功能 UINT_PTR g_Call14[15]={0}; void InitCall14() { LoadLibraryA("MyGame"); HMODULE hdll=LoadLibraryA("c:\\windows\\syswow64\\d3d9.dll"); //DWORD 地址=GetProcAddress(LoadLibraryA("d3d9.dll"),2); //PSGPError for(int i=1;i<=14;i++) { g_Call14[i]=(UINT_PTR)GetProcAddress(hdll,(char*)i); } return; } //1 __declspec(naked) void Direct3DShaderValidatorCreate9() { //跳转到 原来d3d9.dll Direct3DShaderValidatorCreate9 _asm jmp dword ptr [g_Call14+1*4] ; } //2 __declspec(naked) void PSGPError() { _asm jmp dword ptr [g_Call14+2*4] } 立即下载

相关推荐

智能车八邻域图像算法

智能车八邻域图像算法

技术缝合怪的博客 4万+

__declspec(naked)详解

__declspec(naked)是用来告诉编译器函数代码的汇编语言为自己的所写,不需要编译器添加任何汇编代码 注意点: void __declspec(naked) funname() { _asm { ...ret } } 注意,__declspec(naked)是编译器直接拿来用的汇编函数代码,所以一定要记得在开始的时候保存上下文标志位(压栈),在结束的时候...

weixin_30908941的博客 562

UMI刷盘机器人代码实战:从SLAM到Diffusion Policy的完整部署流程

本文详细解析了UMI(Universal Manipulation Interface)刷盘机器人从数据准备到真实部署的完整实战流程。通过SLAM处理视频数据生成三维轨迹,并训练Diffusion Policy模型,最终将策略部署到UR5机械臂与WSG50夹爪上,实现从模仿学习到物理执行的闭环。

weixin_29042035的博客 460

裸函数 __declspec(naked)

在C语言转化成汇编的过程中,编译器会自动处理堆栈

GNAIXGNAHZ的博客 1341

AI大模型与碳足迹评估结合模式及示范案例

AI大模型与碳足迹评估相结合,可以提供更精确、更快速的碳排放量计算,优化减排策略,并促进可持续发展目标的实现。

贾贾的博客 3943

华为云CodeHub代码托管

什么是代码托管 代码托管(CodeHub)是面向软件开发者的基于Git的在线代码托管服务,是具备安全管控、成员/权限管理、分支保护/合并、在线编辑、统计服务等功能的云端代码仓库,旨在解决软件开发者在跨地域协同、多分支并发、代码版本管理、安全性等方面的问题。 代码托管具有以下特性 · 在线代码阅读、修改、提交,随时随地开发,不受地域限制。 · 在线分支管理,包含分支新建、切换、合并,实现多分支并行开发,效率高。 master分支:最为稳定,功能比较完整,随时可发布的代码。 develop分支:用于平时开

LUJINYUANA的博客 1万+

裸函数

概述   _declspec(naked)修饰可以生成一个“裸”函数, 使用后C编译器将生成不含函数框架的纯汇编代码,裸函数中什么都没有,所以也不能使用局部变量,只能全部用内嵌汇编实现。 裸函数的定义 1 void __declspec(naked) Function() 2 3 { 4 ... 5 }   _declspec(naked) ...

antangtong2499的博客 1650

BurpSuite+安卓模拟器双保险:避开真机抓包限制的完整配置指南

本文详细介绍了如何通过BurpSuite与安卓模拟器(如雷电、夜神)协同工作,绕过真机抓包限制的完整配置指南。从环境准备、网络拓扑配置到证书部署和流量分析,提供了一套高效的解决方案,帮助安全测试人员稳定捕获手机数据包,提升测试效率。

Apple的专栏 436

[收藏]__declspec关键字详细用法

原文链接:http://hi.baidu.com/baiyw920/blog/item/a06ddb986314fd0f6e068c0c.html __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性...

ahch8077的博客 572

uniapp(微信小程序) - 实现uniapp小程序电子签名板,横屏手写姓名签名专用写字画板,客户专用签字板,手写签名签字画板组件,手写签名,(详细运行示例,一键复制开箱即用)

uniapp实现微信小程序的电子签名效果,uniapp微信小程序 电子签名 写字板,用uniapp实现微信小程序的电子签名,uniapp微信小程序canvans实现手写签名,记录一个uniapp写的小程序的手写板,横屏,用于签名,unniapp实现电子签名,uniapp怎么做横屏的手写签名,uniapp如何实现签字板,uniapp小程序平台下怎么做电子签名板组件,uniapp电子签名插件,uniapp最好用的电子写字板插件组件源码,实现uniapp 手写签名功能,手写板、签字板,uni-app插件市场最好的

✅ 精选推荐文章 1万+

EtherCAT主站SOEM -- 29 -- STM32F767-SOEM通过 CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 29 – STM32F767-SOEM通过 CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 2238

declspec(naked) 编写干净函数

void __declspec(naked) MyNakedFunction() { strcmp(...); // __cdecl 函数是调用者清除参数堆栈,对于非内联汇编调用这类函数,编译器将自动平衡堆栈,加入 ADD ESP, 8 }

ForYourFace的专栏 803

【报错解决】OpenClaw 报错 FetchError: request to [https://registry.npmjs.org/](https://registry.npmjs.or

在国产基础软件与云原生生态逐步成熟的背景下,越来越多的开发者开始尝试将 Web 前端、AI 推理、系统服务等组件部署到国产操作系统与国产云环境中。我所在的项目正是这样一个场景: 我们基于 OpenClaw 构建一套云端 AI 管理平台,用于统一管理模型服务、前端控制台与后台 API。

博客 1752

_declspec(naked) 使用(裸函数)

最近学习驱动开发,在写绕过inline hook的代码时,有个问题困扰了我一天,最后发现原来是在内嵌汇编时,没有使用_declspec(naked)导致的,看来是偶的基础知识掌握的不牢固啊(得补一下了,磨刀不误砍柴功),在此给记录一下,给自己一个警示。 对于jmp类型的hook, 如果自己的过程没有使用_declspec(naked),那么系统会自动给添加一些额外的代码,控制堆栈平衡,但

whatday的专栏 5286

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

关于 __declspec(naked) 编写干净函数

对于用 __declspec(naked) 编写干净函数 Copy codeVOID __declspec(naked) MyNakedFunction(){strcmp(...);// __cdecl 函数是调用者清除参数堆栈,对于非内联汇编调用这类函数,编译器将自动平衡堆栈,加入 ADD ESP, 8}Copy codeVOID __declspec(naked) MyNake

1325

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

__declspec(naked) 生成纯汇编使用方法

__declspec(naked)是用来告诉编译器函数代码的汇编语言为自己的所写,不需要编译器添加任何汇编代码,通俗说可生成纯汇编。 使用方法: #define NAKED __declspec(naked) VOID NAKED MyFunc() { __asm { ret } } 1,使用 naked 关键字必须自己构建 EBP 指针 (如果用到了的话); 2,

W Blog 5921

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

_declspec(naked) 使用

最近学习驱动开发,在写绕过inline hook的代码时,有个问题困扰了我一天,最后发现原来是在内嵌汇编时,没有使用_declspec(naked)导致的,看来是偶的基础知识掌握的不牢固啊(得补一下了,磨刀不误砍柴功),在此给记录一下,给自己一个警示。 对于jmp类型的hook, 如果自己的过程没有使用_declspec(naked),那么系统会自动给添加一些额外的代码,控制堆栈

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 840

裸函数naked解析

先分享一个案例: 1 #include &lt;stdio.h&gt; 2 3 __declspec(naked) void Test() 4 { 5 int x; 6 x = 3; 7 __asm ret; 8 } 9 10 int main(int argc, char* argv[]) 11 { 12 int ...

weixin_33762130的博客 1526

裸函数 和 调用约定

裸函数 和 调用约定 文章目录裸函数 和 调用约定0.说面1.裸函数 _declspec(naked)2.调用约定 基于堆栈平衡_cdecl_stdcall_fastcall 0.说面 ​ 看滴水逆向视频总结 ​ 编译器:vc++6.0 1.裸函数 _declspec(naked) ​ 用于告诉编译器不用为函数生成任何汇编代码(包括开辟空间以及ret),方便自己用汇编书写函数部分...

qq_35289660的博客 422

关于declspec(naked)说明

对于用 __declspec(naked) 编写干净函数 VOID __declspec(naked) MyNakedFunction(){strcmp(...);// __cdecl 函数是调用者清除参数堆栈,对于非内联汇编调用这类函数,编译器将自动平衡堆栈,加入 ADD ESP, 8}VOID __declspec(naked) MyNakedFunction(){//...__asm CALL strcmp;__asm ADD ESP, 8; // 内联汇编需要自己平衡堆栈}__declspec(na

Tommy(凌飞)的专栏 942

YJX基础44 __declspec(naked)

(在写驱动时)如果函数前不加__declspec(naked) 编译时编译器会自作主张补上栈移动和return,这样会破坏栈平衡 void __declspec(naked) NTSTATUS _MyNtGetThreadContext(HANDLE hThread, PCONTEXTpcontext) { __asm{ jmp dword ptr[g_NtGetThreadContext] //...

mfmfmmf1的专栏 2521
上一篇: 汇编与VC (c or c++)之间的嵌套调用
下一篇: 解决masm与GetEnvironmentString不兼容问题
cmdhack
博客等级 码龄19年 20粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值