阅读背景:

20175328李欣颖 Exp1 PC平台逆向破解

来源:互联网 

#一、实验内容 需要回答的问题在第二部分里面

##1、掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:0x90 空指令;运行该指令时单片机什么都不做,但是会占用一个指令的时间;当指令间需要有延时时,可以插入“NOP”指令。 JNE:0x75 条件转移指令;ZF标志位为0时跳转。 JE:0x74 条件转移指令;ZF标志位为1时跳转。 JMP:0xEB(Jmp short) 0xE9(Jmp near) 0xFF(Jmp word)0xEA(Jmp far) 无条件跳转指令;可转到内存中任何程序段。转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出。 CMP: 0x38(reg8/mem8,reg8) 0x39(reg16/mem16,reg16) 0x3A(reg8,reg8/mem8) 0x3B(reg16,reg16/mem16) 0x3C(al,immed8) 0x3D(ax,immed16) 用于(通过两数相减的方法)比较两个数的大小,同时会更新标志寄存器。 ##2、掌握反汇编与十六进制编程器 (1)反汇编 通过反汇编查找含有跳转指令的汇编行,修改该部分的机器代码使之跳转至getShell函数(其中getShell等函数地址也通过反汇编查询)。 指令为objdump -d xxx。 (2)十六进制编辑器 用来以16进制视图进行文本编辑的编辑工具软件。 一般用vim+xxd。 ##3、能正确修改机器指令改变程序执行流程 (1)从实验指导书的码云连接中下载pwn1.zip并进行解压,然后保存至虚拟机。 (2)用objdump -d pwn1将pwn1反汇编,得到以下代码: ##1、掌握NOP, JNE, JE,




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: