举个实例 运行出core 反汇编: main函数在call func之前: 明显的错误,把ebp的下4字节的内容移动到当前esp所指向的内容,实际上做了一个*p的副本,为func函数使用;调用func函数后: movq $test_num, -8(%rbp)于是,func函数操作的只是*p的副本,把 ...
分类:
编程语言 时间:
2019-07-27 23:58:27
阅读次数:
201
((43 .65 / 22 ) + (76.34 * 3.1)) / ( (12.34 * 6 ) - (140.2 / 94.21) ) 错误原因是,在64位系统和32位系统的as命令对于某些汇编指令的处理支持不一样造成的。 在文件.s中,包含指令:pushl %ebp,该指令在64位系统下就编译 ...
分类:
其他好文 时间:
2019-07-26 01:15:39
阅读次数:
94
1、直接使用结构体做为参数 总结: 将结构体直接做为参数传递的时候,传递的是整个结构体. 反汇编: sub esp,10h mov eax,esp mov ecx,dword ptr [ebp-10h] mov dword ptr [eax],ecx mov edx,dword ptr [ebp-0 ...
分类:
编程语言 时间:
2019-07-08 00:02:36
阅读次数:
128
开启的NX保护 写shellcode 是不可能的,也没有system等函数 存在溢出,算下偏移 变量与bp的距离就等于0x60 这个变量的开栈是根据sp开的 他距离sp0x1c 所以偏移就是 bp-sp-0xc1 画个图吧 ESP| 0x1c |变量| |EBP| 如果就是寻找pop 我理解的这个r ...
分类:
其他好文 时间:
2019-06-12 23:04:39
阅读次数:
121
最近发现底层原理知识匮乏,故而重故一下汇编, 以便对系统攻防技术有更好的理解 下图是80X86寄存器整体图示: 4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器 ...
分类:
其他好文 时间:
2019-06-12 19:44:24
阅读次数:
110
堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。ESP寄存器存放当前线程的栈顶指针; ...
分类:
其他好文 时间:
2019-05-15 00:32:26
阅读次数:
206
MSc Data Mining and Machine Learning (2019)Lab 4 – Neural NetworksProblemThe challenge is to implement the Error Back-Propagation (EBP) training algor ...
分类:
系统相关 时间:
2019-03-17 20:10:04
阅读次数:
140
k = <rsp> <rip> <frame_count>x64下manual stack walking与x86不同,x86一般情况下有ebp chain,x64没有ebp chain,类似x86的FPOx64下,rsp在函数执行完prologue之后就不会变化(调用约定);所以0.如果函数内执行 ...
分类:
其他好文 时间:
2019-02-21 18:56:03
阅读次数:
157
;35 : DExtend de; - - - - - - main栈 - - - - - - 0x401369 lea -0x10(%ebp),%eax 0x40136c mov %eax,%ecx 0x40136e call 0x438628 //定义时调用空构造函数 0x40138a lea ... ...
分类:
编程语言 时间:
2019-02-11 00:58:59
阅读次数:
292
;17 : NVirtual nv; - - - - - - main栈开始 - - - - - - 0x401366 lea -0x10(%ebp),%eax //获取栈ebp-0x10处地址起为对象nv的首地址 0x401369 mov %eax,%ecx 0x40136b call 0x438... ...
分类:
编程语言 时间:
2019-02-10 23:11:03
阅读次数:
399