手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中

缓冲区溢出实战教程系列£¨二£©£ºdev c++编译汇编代码

来源£º本站整理 作者£º佚名 时间£º2019-04-30 TAG£º 我要投稿

小伙伴们对我上一篇文章的反应完全出乎了我的意料£¬感谢大家对我的支持和认可¡£接下来我会精心的把这一系列课程设计好£¬尽量详细的展示给大家¡£上篇文章我列举了一个缓冲区溢出的小例子£¬并提到了dev c++¡¢ollydbg¡¢IDA Freeware这三款软件£¬并介绍了dev c++的基本用法¡£今天会补充一下Dev c++的用法¡£
今天补充的用法主要是为了以后编写shellcode做准备£¬这篇文章只讲用法£¬大家不必深究代码的功能¡£
0×00 如何编写汇编代码
下面给大家一个在dev下用汇编代码编译的MessageBox的的代码例子£¬可以弹出一个提示框£¬今天还是不讲代码£¬主要讲代码是如何编译的¡£
#include
int main()

 LoadLibrary("user32.dll");
 __asm__("push 0x00000001"); //MessageBoxA的最后一个参数 入栈
 
 __asm__("mov   byte   ptr   [ebp+0x26],0x57"); //W
 __asm__("mov   byte   ptr   [ebp+0x27],0x61"); //a
 __asm__("mov   byte   ptr   [ebp+0x28],0x72"); //r
 __asm__("mov   byte   ptr   [ebp+0x29],0x6e"); //n
 __asm__("mov   byte   ptr   [ebp+0x2a],0x69"); //i
 __asm__("mov   byte   ptr   [ebp+0x2b],0x6e"); //n
 __asm__("mov   byte   ptr   [ebp+0x2c],0x67"); //g
 __asm__("mov   byte   ptr   [ebp+0x2d],0x00"); //表示字符截断£¬就是说代码截止
 __asm__("lea   eax,[ebp+0x26]"); //把存储字符的起始地址赋给寄存器eax
 __asm__("push   eax"); //把第三个参数入栈也就是标题
 
 
 
 __asm__("mov   byte   ptr   [ebp+0x2e],0x61");
 __asm__("mov   byte   ptr   [ebp+0x2f],0x62");
 __asm__("mov   byte   ptr   [ebp+0x30],0x63");
 __asm__("mov   byte   ptr   [ebp+0x31],0x64");
 __asm__("lea   eax,[ebp+0x2e]");
 __asm__("push   eax"); //把第二个参数入栈£¬也就是内容
 
 __asm__("push 0x00000000"); //MessageBoxA的第一个参数 入栈
 __asm__("mov eax,0x762cfdae"); //这个地址是临时搜的MessageBox的地址 £¬大家目前需要自己找¡£
 __asm__("call eax"); 
 return 0;
}
首先要编写汇编代码£¬我们要用__asm__()或__asm()方法包含起来£¬不要忘记还要用双引号¡£当然你要是觉得上面一行代码用一个__asm__()函数麻烦£¬你也可以在在一个函数里编写所有代码£¬像下面这样¡£不过要注意每行代码?#23478;?#29992;双引号包裹,还要注意汇编代码后边的分号也要有哦¡£
__asm(
       "mov   byte   ptr   [ebp+0x26],0x57;"
       "mov   byte   ptr   [ebp+0x27],0x61;"
); //W¡¢a
0×01 如何编译汇编代码
我用的是intel风格的汇编£¬在dev下编译通常会遇到问题£¬向下面这样报很多错误¡£

解决方法其实很简单就是£¬在编译选项里加一个-masm=intel命令就好,具体步骤£¬是点击工具-编译选项£¬在弹出?#35828;?#20013;勾选“编译时加入以下命令”£¬把-masm=intel命令添加进去就好£¬如下图所示£º


当我们再编译?#26412;?#27809;有问题了¡£
0×02 看看汇编代码写出来MessageBox的效果

这里给大家跑出一个小问题£¬大家说说为什么abcd后面会出现“烫烫烫烫”的字样£¬大家认真思考哈¡£
0×03 intel与AT&T的不同
因为上面提到了intel汇编£¬感觉有必要提一下AT&T汇编£¬AT&T风格汇编在dev下?#20405;?#25509;可编译的£¬如果你熟悉这种汇编风格£¬那么恭喜你¡£
汇编语言£¨英语£ºassembly language£©是一种用于电子计算机¡¢ 微处理器¡¢微控制器£¬或别样可编程器件个?#22270;?#35821;言¡£拉弗同个设备中£¬汇编语言对应着弗同个机器语言指令集¡£
汇编风格
x86/amd64汇编指令的两大风格分别是Intel汇编与AT&T汇编£¬分别被Microsoft Windows/ Visual C++与GNU/Gas采用£¨Gas也可使用Intel汇编风格£©£º

大家看?#35745;?#30452;观感受一下就好¡£

[1] [2]  下一页

¡¾声明¡¿:黑吧安全网(http://www.rliwo.live)登载此文出于传递更多信息之目的£¬并不代表本站赞同其观点和对其真实性负责£¬仅适于网络安全技术爱好者学?#25226;?#31350;使用£¬学习中请遵循国家相关法律法规¡£如有问题请联系我们£¬联系邮箱[email protected]£¬我们会在最短的时间内进?#20889;?#29702;¡£
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载
        ¹ºÂò²ÊƱȨÍþÍøÖ·
        手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中