自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 第十课_串操作&处理器控制指令

串操作通常以DS:(E)SI来寻址源串,以ES:(E)DI来寻址目的串,对于源串允许段超越。(E)SI或(E)DI这两个地址指针在每次串操作后,都自动进行修改,以指向串中下一个串元素。地址指针修改是增量还是减量由方向标志来规定。当DF=0,(E)SI及(E)DI的修改为增量;当DF= 1,(E)SI及(E)DI的修改为减量。根据串元素类型不同,地址指针增减量也不同,在串操作时,字节类型SI,D...

2018-11-10 13:21:34 435

原创 第九课逻辑运算指令&控制转移

逻辑运算指令逻辑与指令格式:AND DEST,SRC功能:目的操作数和源操作数按位进行逻辑与运算,结果存目的操作数中。源操作数可以是通用寄存器、存储器或立即数。目的操作数可以是通用寄存器或存储器操作数AND指令常用于将操作数中某位清0(称屏蔽),只须将要清0的位与0,其它不变的位与1即可逻辑或指令格式:OR DEST,SRC功能:目的操作数和源操作数按位进行逻辑或运算,结果存目...

2018-11-09 16:21:42 628

原创 算术运算指令 8

算术运算指令80x86指令包括加、减、乘、除四种基本算术运算操作及十进制算术运算调整指令。二进制加、减法指令,带符号操作数采用补码表示时,无符号数和带符号数据运算可以使用相同的指令。二进制乘、除法指令分带符号数和无符号数运算指令• 加法指令、减法指令、加1减1指令• 比较指令、交换相加指令、求补指令• 乘法指令、除法指令一、加法指令格式:ADD DEST,SRCADC DEST,...

2018-11-09 15:19:07 1636

原创 数据传送指令

传送允许的数据流动方式2 .扩展传送指令格式:MOVSX DEST,SRC        MOVZX DEST,SRC      功能:将源操作数由8位扩展到16位送目的操作数,或由16位扩展到32位送目的操作数。其中MOVSX是按有符号数扩展,MOVZX是按无符号数扩展。无符号数或正数高位扩展为0,负数高位扩展为全“1MOV BL,80H ; -12MOVSX AX,B...

2018-11-08 15:48:47 1112

原创 80386 寄存器和寻址

列如 mul eax,ebx  将进位放入edx 剩下的放在eaxebx是基址  [ebx+100h] 这就是地址 也可以[ebx+esi(ebi)+100h]作为源变址 和目的变址ecx 计数 和 loop 连用  ebp 是栈底  esp 是栈顶段寄存器 变成了这样  RPL是特权分段   TI=0找GDT TI=1找LDT  首先CS段寄存器通过一...

2018-11-06 15:26:53 374

原创 标志寄存器

of:当正数加正数等于负数或者负数加负数等于正数 或者 正数减负数等于负数 负数减正数等于正数 算溢出  如果是mov al,0x80add al,0x80有符号  就是 10000000 + 10000000   也就是 -0 + -0 = 0  符号改变 of=1adc ax,1  等于  ax=ax+1+cf比较大小 实际是进行相减...

2018-11-06 10:49:15 322

原创 汇编学习第四讲

jmp指令 直接跳转到指定的地方jmp 00112244    //跳转的是地址call指令  相当于 push IP  jmp 函数地址  或者 push CS PUSH IP JMP 函数地址举个列子这里的call地址是0040123e  执行这一句 它会先push  ip 但是实际上是push  ip+4 也就是将它的下一句保存下来 待会在出函数 ret时候就会通过这里返...

2018-11-05 15:29:15 93

原创 内存寻址方式

这里进行的就是但是最上面的是32位机器 所以不需要ds*10 但是也可以把ds看作是0那就是将ebp地址所承载的值取出dword位出来也就是4字节 给eax 如果是ax 就是word 1字节 如图EBP地址是所指向的值是所以eax变成可以看出是将地址中的值倒向放在eax中 这是因为eax是高16位加上低16位 高对高 也就是0018FF8B对应的00...

2018-11-04 14:16:57 748

原创 一道汇编语言与c语言匹配的死怼题

题目地址http://ctf5.shiyanbar.com/reverse/cfg-to-c/index.html这里用的都是AT&T语法1.引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。2.操作数排列是从源(左)到目的(右),如“movl %eax(源), %ebx(目的)”3.使用立即数,要在数前面加符号$, 如“movl $0x04, %e...

2018-11-02 17:43:36 246

原创 没做出来的一道逆向题

在网上找了很多题  但是每一道成功做出来的 这里就记录一道题的大概过程吧 其实其他题我都是这样想http://www.shiyanbar.com/ctf/1915这道题 我不得不说台日款了  居然还有背景音乐 让人热血沸腾吗 ? 都吓尿了。。下载下来是这样  然后打开运行 的时候 似乎自动下载了一首音乐 并且还 能自动运行播放就是下面的r0 旋律还有点熟悉 。。。打开一看 ...

2018-11-02 17:43:09 179

原创 看大佬操作小结逆向

首先知道了下载下来的一个需要程序先进行查壳,有壳就要先脱壳才能进行od 或者ida分析 可以先运行程序弹出窗口中一般为这样也就是叫你输入key 然后得到flag这个时候载入od 进行分析 在载入的文本中右键选择查找中的所有参考文本字符串然后在弹出的小窗口中 你就可以进行查看这当中有开始运行程序出来的东西 还有很多提示比如Sorry you are wrong!多半就...

2018-11-02 16:46:14 204

原创 数据宽度和储存容量的单位

2018-10-28 17:23:49 315

原创 非数值数据的编码表示

2018-10-28 17:20:29 970

原创 浮点数的编码表示

                                                                                       ...

2018-10-28 17:00:00 4505

原创 C语言中的整数

2018-10-28 16:45:14 680

原创 定点数的编码表示

2018-10-28 16:33:39 1076

原创 数据存储的字节排列

机器指令中后面的四个字节就是立即数  从这里就可以看出立即数所在的地址

2018-10-28 16:24:29 143

原创 数制和编码

2018-10-28 16:24:18 86

原创 计算机系统的层次结构

 

2018-10-25 15:43:36 793

原创 程序的开发和执行简介

首先最开始计算机程序使用机器语言编写的 也就是一串0101组成的 然后记录在纸片或者卡片上  然穿孔代表0没穿孔代表1但是这种编写方式在某些时候会特别不灵活当中前面四位01代表的是操作码 后面是地址  0010-jc 代表是加法有进位后面就出现了汇编语言  每一条汇编指令都与机器指令一一对应汇编语言和机器语言都是机器级语言这里是几条汇编指令通过助记符和标号实...

2018-10-25 15:13:10 764

原创 计算机系统基本组成和基本功能

 冯诺依曼结构 现代计算机中最基本的部件  

2018-10-25 14:17:08 1256

原创 why to learn 计算机系统

用C语言在ISO C90 32位操作系统上进行下计算-2147483648<2147483647  会出现结果false  这与事实不相符但是当表达式变成int i=-2147483648;i<2147483647 会得到true why?而且 同样如果输入-2147483647-1<2147483647  也会得到true  ...

2018-10-25 13:33:40 157

原创 初步认识ida软件

IDA是业界一个功能十分强大的反汇编工具,是安全渗透人员进行逆向安全测试的必备工具,其强大的静态反汇编和逆向调试功能能够帮助安全测试人员发现代码级别的高危致命安全漏洞。软件打开如图所示  这里加载了个程序进行认识首先再ida软件的左面也就是红色框里是函数列表,就是该程序的各个函数都会显示在这里蓝色方框里是汇编代码区,这里是流程图形式,按空格键可以换成代码,然后再在函数列表中点击函数...

2018-10-20 22:04:09 5732

原创 Od跟进之脱壳(待完善)

这里是od脱壳的小学习,首先需要用到PEID查壳工具来查看软件中是存在怎样的壳,windows下大概有三种壳:压缩壳,加密壳和vmp壳(虚拟机壳)然后用od打开软件进行查找软件的入口pushad:把所有的计算器压栈C语言经典入口:push ebpnov edp,espadd esp,-0x10 loadpe或者其他脱壳工具 进行脱壳,但是软件有可能会在脱壳后导致导入表的...

2018-10-20 21:24:01 789

原创 汇编指令(待完善)

nop 啥也不做mov ax,18 :将18放进ax,也就是ax就等于18了,如果是18h就是16进制的18add ax,bx:将ax和bx进行相加,然后将结果保存到ax中 这里有点要注意如果ax=00FF,那它加上1等于多少?安装常理来说应该是0100h是吧,但是并不是,在这里结果是0000,也就是所谓的加多了溢出了,它的上以为并不是用来进位的,这里还需要继续学习才能明白是怎么回事。...

2018-10-20 21:23:37 187

原创 8086

CPU中有一段空间叫数据寄存器,它是CPU能够直接快速读取存储空间。它分为AX,CX,DX,BX.AX:字乘法,字除法,字I/OCX:串操作或者循坏控制中的计数器DX:字乘法,字除法,间接I/OBX:存储器指针物理地址:1.在存储器里以字节位单位存储信息,为正确地存放或取得信息,每个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。2.80...

2018-10-20 21:23:01 911

原创 汇编初识与计算机组成

汇编语言 (面向机器的程序设计语言)汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,...

2018-10-20 19:42:58 160

原创 初识逆向工具od

ida和od兼并静态和动态的调试方式,但是就静态而言ida更加的强大,而动态调试的工具自然是od更为灵活和强大。od软件,界面打开如图:软件窗口可以分为12个小窗口:1.汇编代码对应的地址窗口2.汇编代码对应的十六进制机器码窗口3.反汇编窗口4.反汇编代码对应的注释信息窗口5.寄存器信息窗口6.当前执行到的反汇编代码的信息窗口7-9.数据所在的内存地址,十六...

2018-10-20 13:28:00 1869

原创 c语言特点和缺点

特点第一:c语言简洁,紧凑,使用方便,灵活。c语言只有32个关键字,程序书写形式自由。第二:具有丰富的运算符和数据类型。第三:c语言可以直接访问内存地址,能进行拉位操作,使其能够胜任开发操作系统的工作。第四:生成目标代码质量高,程序运行效率高。第五:可移植性好。缺点第一:c语言数据类型检查机制较弱,这使得程序中的一些错误不能在编译时被发现。第二:c语言本身几乎没有支持代码重用的语言结构,因此一个程...

2018-02-22 20:39:34 399

原创 计算机语言与程序发展之三

    前两代计算机语言都是面向机器的语言,受机型限制,通用性差,学习也不容易,一般适用于专业人员。后来人们创造了高级程序设计语言,简称高级语言解决了这一问题。高级语言类似于人类自然语言和数学语言的方式描述问题,编写程序。列如,用c++编写程序片段:    int a,b,c;    //定义变量a,b,c    cin >>a>> b;  //输入变量a,b    c=a...

2018-02-22 20:29:12 171

原创 计算机语言与程序发展之二

    汇编语言与程序是计算机语言与程序发展的第二个阶段,汇编语言是一种符号语言,它将难以记忆和辨认的二进制指令代码用有意义的英文单词缩写来代替,缩写被称为助记符,每个助记符代表一条机器指令。列如,ADD表示加法,SUB表示减法。    汇编语言改善了程序的可读和记忆性,使编程序的人稍微轻松了一点。但汇编语言设计的程序不能直接在电脑上运行,必须翻译成相应的机器语言才能运行。将汇编语言翻译成机器语言...

2018-02-22 20:13:37 178

原创 计算机语言与程序经历之一

首先计算机语言与程序经历了三个阶段发展,其一就是机器语言与程序。我们都知道,计算机内部时采用的二进制表示信息的。指挥计算机完成一个基本操作的指令也是由二进制代码构成的,称之为机器指令。每一条机器指令的格式和含义都是设计者规定的,并按照这个规定设计制造硬件。一个计算机系统全部机器指令的总和,称之为指令系统,它就是机器语言。用机器语言编制的程序如下 :    0000    0100    0001 ...

2018-02-22 20:05:34 294

原创 while与do-while的区别

while就如同if语句,要先判断在进行循环。而do-while就是不管三七二十一,先做循环里的句子再来判断。列如:#includeint main(){ int type=3; while(type<3) { type++; } printf("%d\n",type); return 0;}while语句这里输出就是3。#includeint main()

2018-01-31 10:57:01 634

原创 多路分支—switch-case语句

switch-case语句我用的不太多,但是在某些情况下它还是非常适用的。但是,对于我们这样的初学者,有些关于它的东西还是得弄明白。#includeint main(){ int type; scanf("%d",&type); switch(type) { case 1: printf("hello\n"); break; case 2: printf("good

2018-01-31 10:44:11 950

原创 C语言的关系运算

首先C语言中有很多关系运算符(下表给出了),而关系运算的结果只有“1”或者“0”这两个,如果关系正确就返回1,关系错误就返回0。这里就不能如同数学一样可以用类似于0  那么如果你要用C语言表示出如同数学的意思,你就得用到“&&”这个运算符,它的意思就是”并且“,那么上面的计算就应该写成x>0&&x运算符意义==相等>大于小

2018-01-31 10:17:40 2559

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除