我们之前已经讨论过简单偏移量,即操作数值或数据值与程序中的地址匹配,因此可以直接转换为偏移量。然而,程序也可能采用更复杂或间接的方式来引用位置。一种常见的方法是使用从某个预定义基址的小偏移量。从寄存器...
花指令
什么是花指令?花指令实质就是一串垃圾指令,主要用于干扰静态分析的难度防止反编译器进行反编译,并不影响程序的正常逻辑,在CTF中花指令的作用主要用于防止静态分析程序,花指令也可以被用在病毒或木马上,通过...
缓冲区溢出学习及漏洞复现
一、什么是缓冲区溢出漏洞 unsetunset1.缓冲区的定义unsetunset 缓冲区是程序中用于临时存储数据的一块内存区域。例如,当程序从文件、网络或用户输入中读取数据时,这些数据通常会被存储到...
UDE使用教程
1、UDE简介 PLS UDE是一款强大的软件调试工具,适用多种架构芯片,包括主流的英飞凌,恩智浦,瑞萨,ARM等,国内有紫光,云途等。实用起来感觉功能略逊于劳特巴赫,但是还是很强大。界...
G.O.S.S.I.P 技术笔记 2025-01-15 薛定谔的寄存器?
编者按:寒假到啦!今天送上一则来自G.O.S.S.I.P成员何同学(此何同学非彼何同学 没那么丁真)的技术笔记,顺便提醒大家,不能光顾着读论文和抓大放小,也要钻研技术细节,毕竟“The devil i...
x64 调用栈欺骗
x64 Call Stack Spoofing前言在我之前的博客中,我讨论了 x64 返回地址欺骗的实现。虽然这种技术可以欺骗返回地址,但它有一个重大缺陷:欺骗返回地址会破坏调用栈链,从而导致容易被检...
汇编程序调用c函数为什么需要设置栈?
之前看了很多关于uboot分析类的文章,其中提到为C语言的运行准备栈。而在uboot start.S汇编代码中,关于系统初始化,也看到栈指针初始化,即正确给栈指针sp赋值,却从来没看到有人解释,为何要...
C/C++堆栈指引
前言 我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数...
你想有多PWN
✦1、打pwn需要准备的武器库✦✦2、副武器✦◆file 程序名:可查看文件类型以及一些大致信息◆readelf -a 程序名:查看elf文件所有节、符号表等信息◆hexdump 程序名:把指令数据等...
一文弄懂终极反汇编器Capstone在Python中的使用
最近在研究IDA中使用python脚本来自动化的完成一些指令集的修改,其中用到了终极反汇编引擎,为了写脚本的时候游刃有余,笔者翻阅了Capstone的官方文档及其翻阅了Python的Capstone实...
VulnHub靶场 | Dawn2
"山前山后各有风景,有风无风都会自由"项目地址:https://download.vulnhub.com/sunset/dawn2.7z难度:中等部署环境:virtualbox网络模式:桥接靶...
故障注入模拟(一)
1背景1、故障攻击是物联网有趣的攻击途径2、对于低成本设备,只有软件保护3、最近构建成本降低了很多2故障攻击干扰设备正常运行各种硬件技术允许还有一些软件或微架构方法:Rowhammer、LVI、V0L...
20