一、基础知识 1、Liunx汇编 主要寄存器:EAX、EBX、ECX、EDX、EBP、ESI、EDI、EIP、ESP(其中ESP是堆栈栈顶寄存器,EBP是堆栈基址指证针,EIP寄存器不能直接使用和修改。调用call时会修改EIP指针。EBP和ESP总指向同一个堆栈,EBP指向栈底,ESP指向栈顶) ...
分类:
其他好文 时间:
2020-07-09 20:57:31
阅读次数:
110
1.作用: ESP寄存器存储的值是CPU下次要执行的地址。ESP中存的是什么,CPU下次就会找对应的地址中的指令。 2.修改EIP的值:JMP指令 可以通过JMP指令修改EIP的值: JMP 00217C51 JMP后面还能跟一个寄存器:JMP EAX 还可以跟内存:JMP DWORD PTR DS ...
分类:
其他好文 时间:
2020-07-05 19:33:31
阅读次数:
73
除了jmp call ret指令jcc也可以修改eip指令 与其他不同的是,jcc是有条件修改eip指令 1.JE,JZ 2.JNE,JNZ 3.JS 4.JNS 5.JP,JPE 6.JNP,JP0 7.J0 8.JN0 9. 10. 1.CF(Carry Flag) 进位标志 判断无符号数整型计 ...
分类:
其他好文 时间:
2020-02-21 20:33:56
阅读次数:
111
get_started_3dsctf_2016 Pwn 这个题确实有点坑,在本地能打,在远程就不能打了,于是我就换了另一种方法来做. 确这个题是没有动态链接库,且PIE是关的,所以程序的大部分地址已经定死了,帮了大忙了. 第一个本地能打通的思路(远程打不了) 修改eip跳转到get_flag函即可, ...
分类:
其他好文 时间:
2019-12-29 00:27:58
阅读次数:
219
简单介绍了,JMP指令按市面上的意思来说是跳转到指定地址,但我这里不这么说,JMP, CALL, RET三个指令均为修改EIP值的指令,EAX, ECX, EBX, EDX, ESP, EBP, ESI, EDI,这8个寄存器的值均可以用mov指令来修改里面的值,EIP行不行呢?我们实际测试一下。 ...
分类:
其他好文 时间:
2019-09-06 01:19:52
阅读次数:
148
功能:通过修改EIP寄存器实现32位程序的DLL注入 <如果是64位 记得自己对应修改汇编代码部分> 原理:挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器码和数据拷贝到里面去,然后修改目标进程EIP使其强行跳转到我们拷贝进去的相关机器码位置,执行相关,然后跳转回来。 ...
分类:
其他好文 时间:
2018-05-26 22:42:13
阅读次数:
217
0x00挂起线程注入原理1.主要是shellcode注入进程后 要让他在获取线程上下文后,修改到我们写入的ShellCode处执行(修改Eip为ShellCode处的地址)2.含义 A->B B做操作在给到A //获得线程上下背景文 Ret = GetThreadContext(ThreadHand ...
分类:
编程语言 时间:
2017-12-14 23:56:19
阅读次数:
315
这是一个简单的会溢出的程序 run时返现程序程序终止,并得到以下提示栈溢出而奔溃。eip的值并没有被改变。 查看寄存器的内容,发现eip的值并没有发生改变,这是因为gcc默认开启堆栈保护,当检测到有栈溢出时就会自动终止。 如果我们希望修改eip时不退出调试,比如编写shellcode时,我们需要关闭 ...
分类:
其他好文 时间:
2017-04-24 12:20:24
阅读次数:
268
JMP: 复制地址到EIP jmp 0x111111 //就是修改EIP ,(EIP就是CPU下一行要执行的语句地址,这个地址也可以是数据区段,然后把数据解析为代码,漏洞就是利用了这点) CALL:顾名思义就是调用, push下一行语句地址到栈顶,然后将地址存入EIP,进入函数,然后ret返回到调用... ...
分类:
其他好文 时间:
2016-12-22 22:32:28
阅读次数:
213
一、JMP指令:无条件跳转指令,本质是修改EIP的值,改变CPU运行路线 MOV EIP,寄存器/立即数 简写为 JMP 寄存器/立即数 二、CALL指令: PUSH 地址B MOV EIP , 地址A/寄存器 简写为:CALL 地址A/寄存器 三、RET指令:返回指令,相当于POP EIP ...
分类:
Web程序 时间:
2016-10-09 07:23:37
阅读次数:
318