WIN32汇编第6课.docx

上传人:b****6 文档编号:7693317 上传时间:2023-05-11 格式:DOCX 页数:11 大小:321.75KB
下载 相关 举报
WIN32汇编第6课.docx_第1页
第1页 / 共11页
WIN32汇编第6课.docx_第2页
第2页 / 共11页
WIN32汇编第6课.docx_第3页
第3页 / 共11页
WIN32汇编第6课.docx_第4页
第4页 / 共11页
WIN32汇编第6课.docx_第5页
第5页 / 共11页
WIN32汇编第6课.docx_第6页
第6页 / 共11页
WIN32汇编第6课.docx_第7页
第7页 / 共11页
WIN32汇编第6课.docx_第8页
第8页 / 共11页
WIN32汇编第6课.docx_第9页
第9页 / 共11页
WIN32汇编第6课.docx_第10页
第10页 / 共11页
WIN32汇编第6课.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

WIN32汇编第6课.docx

《WIN32汇编第6课.docx》由会员分享,可在线阅读,更多相关《WIN32汇编第6课.docx(11页珍藏版)》请在冰点文库上搜索。

WIN32汇编第6课.docx

WIN32汇编第6课

WIN32汇编-第6课

2012年12月17日星期一

15:

29

 

1.识别程序所使用的变成语言.

汇编语言:

程序入口处代码毫无章法.

如图1:

图1

C语言:

入口代码比较有规律

如图2:

图2

2.编译器的保存寄存器环境命令uses寄存器名称列表

如图3:

图3

如图4

 

图4

编译器帮助我们保存了寄存器环境.

 

3.C语言与汇编语言混合编程

①C语言调用汇编

步骤1:

.inc文件中声明函数原型,注意是C约定,如图5

图5

2.源文件中实现该函数,如图6

图6

3.然后用命令行ml/c/coffMsg.asm编译成obj

4.把这个obj导入到vc的编译文件列表,如图7

图7

5.在要使用的地方加上声明,然后调用函数即可,如图8

图8

 

②汇编语言调用C

步骤1:

头文件中声明函数,并使用extern"C"不让符号粉碎

extern"C"voidmsgbox(char*szText,char*szTitle);

源文件中实现上面的函数

2.单独编译,注意要在release方式下,debug下有调试信息,如图9

图9

3.汇编中添加函数声明,并指明C调用约定

MsgboxPROTOC:

DWORD,:

DWORD

如图10

图10

4.调用函数即可,如图11

图11

效果如图12

图12

③汇编中调用C库函数

C库函数的实现在msvcrt.dll中(全称:

microsoftstdiovisualc++runtime)

1.静态库方式

包含静态库即可

includeliblibc.lib

这个静态库在VC目录下D:

\ProgramFiles\MicrosoftVisualStudio\VC98\Lib下,如图13

图13

声明C库函数,然后调用即可,如图14

图14

 

效果如图15:

图15

证明strcpy拷贝字符串成功了.

 

2.动态库方式

包含头文件和导入库

includemsvcrt.inc

includelibmsvcrt.lib

名称前面通常加上crt_或者crt__即可.

如图16

图16

效果如图17

图17        

4.远程线程注入之重定位

①静态重定位(以后介绍)

②动态重定位

会发现在同一台机器上的不同程序里面的MessageBox的地址是一样的.

如图18

 

俄罗斯方块版

 

扫雷版

 

PPT版

 

图18

那么就可以在我们的程序里面首先获取到需要调用的函数的地址,将这个地址赋值给要注入的线程函数内部定义的全局变量里面,这样即可.

如图19

图19

线程函数的写法如图20

图20

虽然pfnMsgbox里面保存的MessageBoxA的函数地址同一台机器上面是不变的,但是因为使用了offset取在编译期间就确定了pfnMsgbox这个指针变量的地址,所以远程线程函数注入到对方进程的时候就需要对pfnMsgbox的地址进行动态重定位了,做法就是前面加上ebx修正即可。

解释如图21

 

图21

进入计算器弹出MessageBox的效果,如图22

图22

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2