Assembly
文章平均质量分 80
zhou191954
这个作者很懒,什么都没留下…
展开
-
商朝子的汇编语言教学
稍微有点儿计算机知识的朋友一定知道,计算机是只识别0和1的,最初那会儿,要写程序,就要用0和1来写,呵呵,Cool吧!所以曾经有过的对程序员的崇拜,可能就源自那个时候吧 后来,人们发现用0和1来写程序,太不爽了,不但写起来不上手,而且回过头来看的话,应该很难再看明白了,总之出于这些原因,就有了汇编语言。 汇编语言用一些助记符来代替0和1的多种组合,也就是各个指令,这样的话,从一定程度上来说,转载 2013-01-30 16:50:31 · 443 阅读 · 0 评论 -
打造Windows下自己的ShellCode
适合读者:漏洞分析员、黑迷前置知识:汇编阅读能力,漏洞调试基本步骤,VC使用方法WTF:这几次的菜鸟版EXP系列文章都是重点讲解溢出编程的原理和思路,包括漏洞的定位,利用构造以及遇到限制时ShellCode的编码技巧等,但对ShellCode本身的编写,特别是Windows环境下ShellCode的初步编写,却很少提及。在文章中都是说发扬“拿来主义”,看准外面现成的ShellCod转载 2014-06-13 19:19:29 · 4403 阅读 · 1 评论 -
解析SS、SP、BP寄存器
SS, SP, BP 三个寄存器SS:存放栈的段地址;SP:堆栈寄存器SP(stack pointer)存放栈的偏移地址;BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这转载 2014-06-16 16:12:12 · 12837 阅读 · 1 评论 -
汇编指令和机器码的对应表
一、汇编速查 MOV AA,BB 将 BB 放到 AA 里 CALL 调用子程序 (相当于 BASIC 的 GOSUB) RET 与 RETF 返回程序 (相当于 BASIC 的 RETURN)转载 2014-06-16 09:57:12 · 25889 阅读 · 0 评论 -
汇编中的参数传递和堆栈平衡
在Win32汇编中,我们经常要和Api 打交道,另外也会常常使用自己编制的类似于Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代码转载 2014-06-16 15:49:35 · 1638 阅读 · 0 评论 -
汇编语言中"[]"的用法
内容:举例说明在汇编语言中,"[]"的用法"[]"的用法在"常见问题"已经有所说明,引用如下:1、push dword ptr [024c1100] 压栈024c1100值的双字2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看标志位3、cmp byte ptr [eax],46 字节型eax-46,看标志位4、lea eax,[edx-0转载 2013-01-30 16:52:53 · 1678 阅读 · 2 评论 -
汇编写驱动-光速入门
用汇编写windows驱动非常简单,只要有汇编基础和用C写驱动的能力即可。有了这两样基础,我们距离用汇编写驱动,只剩下一层窗户纸,一戳就破。一、准备软件:Radasm 为了快速入门,好的IDE是降低入门难度的有效手段。Radasm是我最为钟爱的一款软件,第一次使用过它,我就果断地将masm32删除了。 RadASM是一款著名的WIN32汇编编辑器,精通win32汇转载 2014-07-02 17:37:56 · 2073 阅读 · 0 评论 -
test和cmp一个很菜很基础的话题
看过破解教程,都知道test,cmp是比较关键,可是我一直不清楚它们究竟是怎么比较的,最后下决心找了很多资料,和大家一起把它们弄清楚.首先看看:状态寄存器(即标志寄存器)PSW(Program Flag)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15 14 13 12 11 10 9 8 7 6 5 4转载 2013-01-30 16:53:18 · 446 阅读 · 0 评论 -
浮点指令
浮点指令 对下面的指令先做一些说明: st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响 src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节) x 1. 数据传递和对常量转载 2013-01-30 16:51:04 · 671 阅读 · 0 评论 -
浮点运算简介
浮点运算简介 对于习惯于C的灵活多变的数据类型和方便的计算那些人而言,了解底层的浮点运算似乎没有什么意义,现在Visual盛行的时代还有多少人关心那些所谓的底层呢? 对了AfOs来说,浮点运算是编程中很重要的一部分,因为我们可能会面临一些稍微复杂的运算,如果你和我一样是Die-hard的asm拥护者,不想轻易用C来解决问题,你肯定能想像在asm下用整数运算求sin(2.3)的痛苦,转载 2013-01-30 16:51:35 · 689 阅读 · 0 评论 -
8088 汇编跳转
8088 汇编跳转 一、状态寄存器PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15141312111098765432转载 2013-01-30 15:56:57 · 358 阅读 · 0 评论 -
8088 汇编速查手册
8088 汇编速查手册 一、数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送.转载 2013-01-30 15:56:19 · 390 阅读 · 0 评论 -
代码优化常识
32位代码优化常识 关于代码优化的文章实在太多了,遗憾的是大部分我都没有看,尽管他们就摆在我的床边(每当我要看的时候就忍不住打哈欠...嘿嘿).这篇文章较短所以翻了一下. 代码优化的含义: 代码优化的目标当然是体积小和速度快,但是在通常的情况下二者就象鱼和熊掌一样不能得兼,我们通常寻找的是这二者的折中,究竟应该偏向何方,那就得具体看我们的实际需要. 但有些常识是转载 2013-01-30 16:52:25 · 439 阅读 · 0 评论 -
关于寄存器ESP和EBP的一些理解
一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush p2 ;参数2入栈, ESP -= 4h , ESP = NN - 4h转载 2014-11-24 19:14:51 · 818 阅读 · 0 评论