IN Blog

Thinking will not overcome fear but action will.

复习汇编语言(3)

Hello world,hello blog!

转移指令 转移指令:可以控制CPU执行内存中某处的代码的指令。 8086CPU的转移行为分为: ¥. 只修改IP时,称为段内转移,如:jmp ax。 *短转移:IP的修改范围-128——127 *近转移:IP的修改范围-32768——32767 ¥.同时修改CS和IP 时,称为段间转移,如:jmp 1000:0。 8086CPU的转移指令分为: ...

复习汇编语言(2)

Hello world,hello blog!

内存定位 and 逻辑与指令,按位进行与运算 通过该指令可将操作对象的相应位设为0,其他位不变 将AL的第六位设为0:and al,10111111B Or 逻辑或指令,按位进行或运算 通过该指令可将操作对象的相应位设为1,其他位不变 将AL的第六位设为1:or al,01000000B A :41H,01000001B ...

复习汇编语言

Hello world,hello blog!

汇编语言 (1)学习背景 由于第三阶段的任务需要对程序进行反汇编并进行分析,因此需要重新将汇编语言的基础知识复习一遍。 (2)学习内容 8086CPU有14个寄存器,分别是: AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW. 这些寄存器都是16位的,可以放两个字节。 AX,BX,CX,DX用来存放一般性的数据,称为通用寄存器...

Babybase

Hello world,hello blog!

Babybase Base加密 Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一种方法,并不会产生新的字符集! ...

phase_5(2)和phase_6

Hello world,hello blog!

phase_5的解答 1. 题目分析 首先题目要求输入6位长度的字符串,否则爆炸,并且代码中有一个循环,让输入的字符串依次被读取进入循环。 movzbl (%ebx,%eax,1),%ecx 此条指令用于读取输入的字符串。 然后将输入的字符串与0xf进行and操作,取出字符串所代表的ASCII码的低四位。 a...

phase_5

Hello world,hello blog!

phase_5 1 题目分析 调用string_length的字符串长度函数,测得的长度若不为6则引爆; 做一个6次的循环,循环变量%eax从1到6,令%ecx <- (%ebx+%eaxx); 只保留%ecx的低四位,并以此作为地址搜索变量,取出0x804a280+4*%ecx中的数加到%edx上,如此循环6次后跳出; ...

phase_4(2)

Hello world,hello blog!

phase_4 解题思路 此题是关于函数的递归调用和栈,在汇编代码中有一个func4函数,故需要研究此函数,将其方向解析为C语言模式。 首先还是对明码地址进行断点,找到此题的解是需要输入两个整数。 再分析phase_4主函数部分,得知第一个数必须小于等于0xe也就是十进制的14才不会爆炸。 然后直接断点到func4函数...

phase_4

Hello world,hello blog!

phase_4 解题思路 此题是关于函数的递归调用和栈,在汇编代码中有一个func4函数,故需要研究此函数,将其方向解析为C语言模式。 首先还是对明码地址进行断点,找到此题的解是需要输入两个整数。 再分析phase_4主函数部分,得知第一个数必须小于等于0xe也就是十进制的14才不会爆炸。 然后直接断点到func4函数...

phase_3

Hello world,hello blog!

phase_3 汇编指令 jg 有符号大于则跳转 ja 无符号大于则跳转 je 等于则跳转 解题过程 首先弄清楚要输入的字符串是什么类型,使用断点功能,得到解题所需的字符分别为整型、字符、整型共三个字符。 按照解题惯例,直接跳转到call 8048860 __isoc99_sscanf@plt处继续研究代码。 ...

Bomb(1)

Hello world,hello blog!

实验简介 使用所学知识拆除一个“Binary Bombs” 来增强对程序的机器级表示、汇编语言、调试器和逆向工程等理解; 一个“Binary Bombs” 是一个Linux可执行C程序,包含phase1~phase~6共6个阶段; 炸弹运行各阶段要求输入一个字符串,若输入符合预期,该阶段炸弹被“拆除”,否则“爆炸”; ...