PUSHAD 和 PUSHFD

来自:“http://blog.sina.com.cn/s/blog_af95b18b0101hmx0.html

pushad: 将所有的32位通用寄存器压入堆栈

pusha:将所有的16位通用寄存器压入堆栈

pushfd:然后将32位标志寄存器EFLAGS压入堆栈

pushf::将的16位标志寄存器EFLAGS压入堆栈

popad:将所有的32位通用寄存器取出堆栈

popa:将所有的16位通用寄存器取出堆栈

popfd:将32位标志寄存器EFLAGS取出堆栈

popf:将16位标志寄存器EFLAGS取出堆栈

_asm pushad

_asm pushfd

// 处理代码

_asm popfd

_asm popad

时间: 2025-01-16 17:50:26

PUSHAD 和 PUSHFD的相关文章

(四)PUSH、POP、PUSHAD与PUSHFD

PUSH:往ESP-4的内存地址存入数据,并且esp的值减存入的数据宽度 push 0x12345678 mov dword ptr ds: [esp-4],eax   //存入数据 lea esp , dword ptr ds: [esp-4]  //提升栈顶 POP:将栈顶的数据复制到指定的容器,ESP并加上该弹出数据的宽度 POP eax  //将栈顶4字节复制到EAX,ESP加4 mov eax,dword ptr ds: [ESP] LEA ESP ,DWORD PTR DS: [ES

SetThreadContext注入DLL

注入DLL的方式有很多 R3就有远程线程CreateRemoteThread.SetWindowsHookEx.QueueUserApc.SetThreadContext R0可以参考sudami大神的思路 关于本文32位下参考 http://bbs.pediy.com/showthread.php?t=181174&highlight=setthreadContext+dll+%E6%B3%A8%E5%85%A5 言归正传 大体思路就是 我们先打开目标进程,枚举目标线程采用的是系统快照的方式,

通过构造系统服务分发实现拦截&过滤 (仿360游戏保险箱)

想写这个程序主要是因为看了KSSD的一篇帖子,http://bbs.pediy.com/showthread.php?t=108378 讲 的是360保险箱保护游戏账号的原理,实际上就是对各种请求的拦截.这个帖子是大约6年前的了,我简单的看了一下现在的360保险箱应该不再采用这种方法 了,不再去HOOK KiFastCallEntry了,而且多增加了几个事件通知回调.这里主要是跟着那篇帖子作者的分析,来自己实现一个360游戏保险箱. 这里主要的思路就是HOOK住系统服务的分发,这已经不是什么新鲜

扩展节形式感染学习笔记

原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题 今天我们的感染方式是扩展末尾节,因为它很简单.稳定.快捷.那么扩展末尾节顾名思义就是针对被感染对象的最后一个节的扩展.将尾部节的大小扩充,然后将我们的病毒代码Write进去,修改若干的PE结构成员. 知道这些,你肯定会问修改哪些若干成员,为了给大家更直白的感觉,下面我列出了感染中需要修改的结构成员. 1.  SizeOfImage        50h

向PE文件植入后门代码技术讨论

写在前面的话 这篇文章将介绍使用codecaves对PE文件植入后门代码.有几个很好的工具可以帮到你了.比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病毒. 开始 让我们理解一些术语: PE文件: 可移植可执行文件(PE)格式是可执行文件,目标代码和DLL的文件格式,用于32位和64位版本的Windows操作系统. Code Cave: 根据维基百科介绍 : "Code Cave是进程内存中的一系列空字节.进程内存中的Code Cave通常是对代码

Windows系统的dll注入

声明:这篇博客原为本人在CSDN上发布的,但是CSDN这个网站违背了本人的分享和开源精神,另外CSDN的广告满天飞.审核重重(所有的下载必须使用CSDN下载,而下载需要积分,这严重违背本人的无私分享精神.开源精神.),即使审核通过也会不定时进行重新审核,CSDN的这些操作严重影响了本人的博客管理.因此,本着无私分享精神.开源精神.轻松使用原则,本人摒弃了CSDN,并将博文重新编辑并发布在博客园网站上,而原博文作删除处理! 一.什么是dll注入 在Windows操作系统中,运行的每一个进程都生活在

Inject shellcode into PE file

先声明这是不免杀的,只是演示. 新增节 一般能实现特定功能的shellcode的长度都比较长,可以分到几个节上的空白区,但是这样麻烦啊,或者把最后一个节扩大,但是最后一个节一般没有执行的属性.所以选择新增一个节表. 修改添加节表 先判断一下最后一个节表后面有没有够40个字节新增一个节表的结构体,正常的都够. 把第一个节表拷贝写到最后一个节表的后面,因为第一个节表的属性默认是可执行的,可以省了后面的修改. 节表是复制过来的所以还要修改很多东西,先获取一下文件对齐和内存对齐. SectionAlig

汇编中如果汇编和调用API混合用的话要注意Pushad popad

某群有个人提出一个奇怪的问题,这段代码的循环不正常 ;MASMPlus 代码模板 - 控制台程序 .386.model flat, stdcalloption casemap :none include windows.incinclude user32.incinclude kernel32.incinclude masm32.incinclude gdi32.inc includelib gdi32.libincludelib user32.libincludelib kernel32.li

嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析

/***********************************************************************************************************                                                uC/OS-II*                                          The Real-Time Kernel  RTOS* ***************