call与retn指令】的更多相关文章

1. CALL指令: CALL指令可不是如唤指令,而是子程序调用指令.那么汇编语言中的子程序是什么呢?子程序能被其它程序调用,在实现某种功能后能自动返回到调用程序去的程序.其最后一条指令一定是返回指令,故能保证得新返回到调用它的程序中去.也可调用其它子程序,甚至可自身调用. 我们可以暂时把子程序理解为一个代码段,是一个模块化的代码面.这个代码段可以完成某一特定功能,当程序在执行过程中需要用到这一功能,将会进入这个代码段.这块代码段执行完毕后,会跳出这块代码段.而进入代码段这一过程就是子程序的调用…
知识点:  PUSH  POP  CALL堆栈平衡  RETN指令 一.PUSH入栈指令 (压栈指令): 格式: PUSH 操作数 //sub esp,4 ;mov [esp],EBP 操作数可以是寄存器,存储器,或者立即数 二.POP出栈指令 (弹栈指令) 格式:POP 操作数 //mov EBP,[esp] ;add esp,4 操作数是寄存器,或者存储器,不能是立即数 三.代码分析 .测试PUSH和POP 与ESP栈顶指针的关系 .CALL与ESP的关系 .总结栈的特点(后进先出)…
概述 函数调用是计算机程序中一个最重要的概念之一,从汇编的角度看,能更加直观地理解函数调用的原理,理解 CALL 指令调用过程中 ESP.EBP 寄存器的作用. 我们先从一段简陋的 C 语言代码说起,我们首先调用了 printf 函数,为什么要调用 printf 函数呢?实际上是为了更方便地在 OllyDBG 反汇编工具中断点,能更好地定位到 fun 函数的位置(因为 fun 函数的 CALL 将紧跟着 printf 函数的 CALL). 在 fun 函数中,我们定义两个 int 型变量(两个…
0x00 样本说明 分析样本是被0b500d25f645c0b25532c1e3c9741667的样本感染得到.感染前的文件是Tcpview.exe,一款windows网络连接查看工具. 感染前后文件对比图示如下: 感染前 感染后 文件大小 106496 字节 818688 字节 文件md5 4B6B70F4A199CF3EAC1554B08804BC4F 041D85ECABF5F2E8366C5E0FDCB705F3 文件图标     分析样本的报毒情况如下: 杀软类型 病毒名 nod32…
国庆假期没事做了几道pwn题练手,等有时间在贴出pwn题的分析. 利用VIRTUALALLOC的方法绕过DEP其实和之前的方法大同小异了,只是VIRTUALALLOC开辟了一段新的可执行的内存空间,然后在复制shellcode,比修改内存属性要麻烦一点点. VirtualAlloc函数说明: lpAddress: 申请内存的起始地址,实验选了0x00030000 dwSize: 申请的内存大小,实验选择0XFF,根据shellcode的大小确定 flAllocationType: 申请内存的类型…
这几天做了NSCTF和GCTF,耽误了几天,今天继续. 这次绕过DEP的方法是利用VirtualProtect函数将shellcode所在的内存属性改成可执行状态就可以绕过DEP了. 首先看一下VirtualProtect函数的参数说明: lpAddress: 改变属性的内存起始起止 dwSize: 要改变属性的内存的起始地址 flNewProtect: 需要设置的内存的新属性,这里设置为0x40就行,可读可写可执行 pflOldProtest: 内存原始属性类型保存地址,根据实验书上的意思这里…
好久没有到博客写文章了,9月份开学有点忙,参加了一个上海的一个CHINA SIG信息比赛,前几天又无锡南京来回跑了几趟,签了阿里巴巴的安全工程师,准备11月以后过去实习,这之前就好好待在学校学习了. 这段时间断断续续把<加密与解码 第三版>给看完了,虽然对逆向还是一知半解,不过对VMP虚拟机加壳这块有了一点新的认识.这里分享一些笔记和想法,没有新的东西,都是书上还KSSD里看来的,权当笔记和分享,大神勿喷. 准备分成3部分讲一下 1. VM虚拟机简介 2. VM虚拟指令和x86汇编的映射原理…
原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium Embedded Framework)简述 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件.CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去. 它…
Data Execution Prevention,数据执行保护,专门用来弥补计算机对数据和代码混淆这一天然缺陷. DEP 的原理是将数据所在的内存页(默认的堆.各种堆栈页.内存池页)标记为不可执行,当试图执行不可执行页的数据时,CPU 抛出异常,转入异常处理. MS 从 Windows XP sp2 开始支持 DEP.DEP 分为软件 DEP 和硬件 DEP,软件 DEP 即 SafeSEH.硬件 DEP 需要 CPU 的支持:AMD 和 Intel 都为此做了设计,AMD 称为 No-Exe…
Windows 安全机制 漏洞的万源之本在于冯诺依曼设计的计算机模型没有将代码和数据进行区分——病毒.加壳脱壳.shellcode.跨站脚本攻击.SQL注入等都是因为计算机把数据和代码混淆这一天然缺陷而造成的. Windows XP SP2 之前的系统致力于系统稳定性,忽略安全性:之后的 Windows 系统系统加入了独特的安全性设计: 1. GS 编译技术:函数返回地址之前加入了 Security Cookie,返回之前首先检测 cookie 是否正确,栈溢出难度增加. 2. 增加了对 S.E…