VS2010 如何调用 汇编写的dll库

首先是编辑dll库

汇编码:

1;######################################################################### 2; Assembler directives 3 4.486 5.model flat,stdcall 6option casemap:none 7 8;######################################################################### 9; Include file 10 11include AAA.inc 12 13.const 14 szTitle db '爱静',0 15.code 16 17;######################################################################### 18; Common AddIn Procedures 19 20DllEntry proc hInst, reason, reserved1 21 mov eax, 1 22 ret 23DllEntry Endp 24; Export this proc (it is autoexported if MakeDef is enabled with option 2) 25InstallDll proc uses ebx hWin:DWORD, fOpt:DWORD 26 mov eax, 1 27 ret 28 29InstallDll Endp 30; Export this proc (it is autoexported if MakeDef is enabled with option 2) 31_adds proc a,b 32 lea eax,szTitle 33 ret 34_adds endp 35;######################################################################### 36End DllEntry

只定义了一个简单的函数 adds 接受2个参数返回一个字符串指针(指针内存的就是内存地址的位置而已) 关于这点可以看C++反汇编与逆向分析技术揭秘

def 文件

EXPORTS _adds

上面的步骤就是生成普通的dll库

接下来写C语言部分:

头文件中定义: 注意这部分只能在头文件中定义

1#ifdef __cplusplus 2extern "C" { 3#endif 4 char * __stdcall _adds(int i,int b); 5#ifdef __cplusplus 6} 7#endif

这里看到我们将 4字节的DWORD 当做int  和放在eax中的 "爱静" 字符串的首地址当做char*;这点不明白的可以看C++反汇编与逆向分析技术揭秘,

接下来就需要向项目中添加 刚才汇编生成的lib文件了  

选择lib文件 ,让后就可以了..

当然要运行的程序下必须含有 DLL文件..看好了是汇编生成的DLL文件 而不是lib文件

文件结构如下

VS 真是强大的编辑器= =window下最好的木有之一.

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

WPS2010版本DLL劫持漏洞复现(plgpf.dll)

WPSOfficeplgpf.dllDLL劫持漏洞原理简单说就是exe文件寻找DLL库会优先在当前目录下寻找,若DLL库未经过校验或者寻找DLL路径不是绝对路径,容易导致DLL被本地攻击者劫持漏洞描述CVE编号:CVE20105208WPSoffice套件应用程序在加载外部库(DLL)时通过了一个不合格

日子越来越有判头了?用DLL劫持,搞点事情!

0x01dll简介在Windows系统中,为了节省内存和实现代码重用,微软在Windows操作系统中实现了一种共享函数库的方式。这就是DLL(DynamicLinkLibrary),即动态链接库,这种库包含了可由多个程序同时使用的代码和数据。每个DLL都有一个入口函数(DLLMain),系统在特定环境下会调用DLLMain。在下面的事件发生时就会调用d

MFC DLL 导出函数的定义方式

一直在鼓捣DLL,每天的工作都是调试一个一个的DLL,往DLL里面添加自己的代码,但是对于DLL一直不太了解啊!今天一查资料,才发现自己对于DLL编写的一些基本知识也不了解。要学习,这篇文章先总结DLL的导出函数的方法。1.首先说一下如何建立一个普通的DLL工程!(以VS2008为例)NewProject  Win32标签

go 编写DLL

packagemianimport"C"//exportMinfuncMin(a,b)int32{ifab{returnint32(b)}returnint32(a)}  编译命令   

JNI使用方式

作用:使Java能够同C/C动态库(dll)进行交互。编写过程:    1、native接口类,其中方法用native修饰,没有方法体。    2、通过javah命令编译native接口类,会生成.h的头文件。    3、用C编写一个dll文件        (1)需要引入刚生成的.h头文件        (2)实现头文件

VS2010 如何调用 汇编写的dll库 - HelloWorld