软件逆向学习
Karle_
阿玛尼
展开
-
【软件逆向】第39课,软件逆向安全工程师之动态补丁,每天5分钟学习逆向吧!
动态补丁是一种在程序运行时对其行为进行修改的技术。它通常用于修复程序错误、改变程序功能或绕过某些限制,而无需修改原始程序文件。原创 2024-09-05 11:06:07 · 301 阅读 · 0 评论 -
【软件逆向】第38课,软件逆向安全工程师之静态补丁,每天5分钟学习逆向吧!
关于x64x32dbg补丁工具的使用,以下是一些基本的指南和步骤:原创 2024-09-05 11:00:07 · 238 阅读 · 0 评论 -
【软件逆向】第37课,软件逆向安全工程师之标志寄存器,每天5分钟学习逆向吧!
在x86架构中,标志寄存器(FLAGS register)包含了多个标志位,这些标志位用于控制和指示处理器的状态以及某些操作的执行结果。原创 2024-09-04 11:22:14 · 227 阅读 · 0 评论 -
【软件逆向】第38课,软件逆向安全工程师之操作标志寄存器实例,每天5分钟学习逆向吧!
在这些实例学习中,我们使用汇编指令来操作标志寄存器,并根据标志寄存器的状态进行条件分支。这些操作对于编写高效的汇编程序以及理解程序的行为至关重要。原创 2024-09-04 11:20:51 · 448 阅读 · 0 评论 -
【软件技巧】第36课,软件逆向安全工程师之堆栈操作指令,每天5分钟学习逆向吧!
在x86汇编语言中,堆栈操作指令用于处理程序的堆栈(stack)。堆栈是一种后进先出(LIFO)的数据结构,用于存储临时数据、函数参数、返回地址和局部变量等。call 子程序地址。原创 2024-09-03 22:31:07 · 332 阅读 · 0 评论 -
【软件技巧】第35课,软件逆向安全工程师之汇编指令mov、ptr、xchg交换指令,每天5分钟学习逆向吧!
在x86汇编语言中,mov指令用于将一个值从一个位置移动到另一个位置。这个值可以是立即数、寄存器中的值、内存中的值或者是一个指针。mov指令是汇编语言中最常用的指令之一,因为它在数据传输和初始化操作中起着核心作用。mov。原创 2024-09-03 22:21:12 · 528 阅读 · 0 评论 -
【软件逆向】第34课,软件逆向安全工程师之段寄存器,每天5分钟学习逆向吧!
在x86架构的汇编语言中,段寄存器是一组用于存储内存地址的寄存器,它们与基址寄存器(如。)一起使用,以访问内存中的数据。段寄存器的主要作用是将线性地址转换为物理地址。原创 2024-09-02 17:27:30 · 233 阅读 · 0 评论 -
【软件技巧】第33课,软件逆向安全工程师之如何快速的跑到某行代码EIP设置,每天5分钟学习逆向吧!
EIP(Extended Instruction Pointer)是x86架构中一个重要的寄存器,它用于存储当前正在执行的指令的地址。EIP是程序计数器(Program Counter)的扩展版本,因为它是32位寄存器,所以它能够存储一个32位的地址。鼠标右键在此设置EIP。原创 2024-09-02 17:23:07 · 263 阅读 · 0 评论 -
【软件逆向】第32课,软件逆向安全工程师之(七)基址变址相对寻址,每天5分钟学习逆向吧!
基址变址相对寻址(Base-Indexed Relative Addressing)是x86汇编语言中的一种寻址模式,它结合了基址寄存器、索引寄存器和偏移量来访问内存中的数据。这种寻址模式允许程序员以非常灵活的方式访问数组、结构体和其他复杂数据结构中的元素。原创 2024-09-02 17:21:28 · 565 阅读 · 0 评论 -
【软件逆向】第31课,软件逆向安全工程师之(六)基址变址寻址,每天5分钟学习逆向吧!
基址变址寻址(Base-Indexed Addressing)是x86汇编语言中的一种寻址模式,它允许程序员通过结合基址寄存器、索引寄存器和偏移量来访问内存中的数据。这种寻址模式特别适用于处理数组和结构体等数据结构。原创 2024-09-02 17:17:18 · 611 阅读 · 0 评论 -
【软件逆向】第30课,软件逆向安全工程师之(五)寄存器相对寻址,每天5分钟学习逆向吧!
寄存器相对寻址是汇编语言中的一种寻址方式,它结合了寄存器间接寻址和立即数偏移。在这种寻址方式中,操作数的有效地址是通过将一个寄存器的内容与一个固定的偏移量(立即数)相加来得到的。原创 2024-09-02 16:47:46 · 310 阅读 · 0 评论 -
【软件逆向】第29课,软件逆向安全工程师之(四)寄存器间接寻址,每天5分钟学习逆向吧!
寄存器间接寻址是汇编语言中的一种寻址方式,其中操作数的地址存储在寄存器中,而不是直接在指令中给出。这意味着CPU首先从寄存器中读取一个地址,然后使用该地址去访问内存中的操作数。原创 2024-09-02 16:44:37 · 305 阅读 · 0 评论 -
【软件逆向】第28课,软件逆向安全工程师之(三)直接寻址,每天5分钟学习逆向吧!
直接寻址是一种汇编语言中的寻址方式,其中操作数是一个内存地址。在直接寻址模式下,指令包含一个指向内存中特定位置的地址,该位置存储着要操作的数据。原创 2024-09-02 16:38:08 · 765 阅读 · 0 评论 -
【软件逆向】第27课,软件逆向安全工程师之(二)寄存器寻址,每天5分钟学习逆向吧!
寄存器寻址是汇编语言中的一种寻址方式,在这种方式中,操作数位于CPU的寄存器中。寄存器是CPU内部的高速存储位置,用于快速访问数据。原创 2024-09-02 16:32:30 · 644 阅读 · 0 评论 -
【软件逆向】第26课,软件逆向安全工程师之(一)立即寻址,每天5分钟学习逆向吧!
在汇编语言中,立即寻址是一种寻址方式,其中操作数直接包含在指令中。这意味着操作数(数据值)是立即数,它直接嵌入在指令代码中,而不是存储在寄存器或内存中。原创 2024-09-02 16:29:29 · 321 阅读 · 0 评论 -
【软件逆向】第25课,软件逆向安全工程师之hook技术延伸,每天5分钟学习逆向吧!
除直接在内存中写入汇编代码的hook方法之外,还有多种其他方法可以实现类似的目的。原创 2024-09-02 15:40:43 · 204 阅读 · 0 评论 -
【软件逆向】第24课,软件逆向安全工程师之常用汇编指令,每天5分钟学习逆向吧!
汇编语言在逆向工程中的应用,重点概述了常用的x86汇编指令。文章内容包括:数据传送指令:讲解了如何使用mov、push、pop和lea等指令在寄存器与内存之间移动数据。算术指令:概述了add、sub、mul、div、inc和dec等指令,用于执行基本的数学运算。逻辑指令:介绍了and、or、xor和not等指令,用于执行逻辑运算。比较和跳转指令:解释了cmp以及各种条件跳转指令(如jz、jnz、jmp),这些指令用于比较值并根据结果改变程序流程。循环指令:提到了loop及其变体,用于实现循环结构原创 2024-09-02 15:34:10 · 348 阅读 · 0 评论 -
【软件逆向】第23课,软件逆向安全工程师之实战HOOK技术,每天5分钟学习逆向吧!
汇编hook技术是一种常见的软件修改技术,它允许黑客或逆向工程师修改程序的行为,比如改变版本号、跳过验证检查等。原创 2024-09-02 15:16:46 · 212 阅读 · 0 评论 -
【软件逆向】第22课,软件逆向安全工程师之实战VPM壳逆向,每天5分钟学习逆向吧!
8.call指令是函数处理,回车进入查看是否有需要的处理逻辑,减号键可以返回,用nop掉条件判断。快捷键:F2下断点,F8下一步,回溯Ctrl+F9,回车跳目标位置,减号回到跳转位置。7.还没有看到有效逻辑,继续下一步F8,看到了数据操作。6.nop没有,继续ctrl+F9回溯 查看数据。4.ctrl+F9执行完断点函数,到ret。1.messageBoxa 下断点。5.下一步F8,查看是否有逻辑数据。1.查壳打开Exeinfo。3.x32dbg附件程序。2.点击确定按钮执行程序。9.使用补丁工具修改。原创 2024-09-02 15:16:06 · 230 阅读 · 0 评论 -
【软件逆向】第20课,软件逆向安全工程师之汇编语言常用操作码认识,每天5分钟学习逆向吧!
在x86架构的汇编语言中,操作码(Opcodes)是用于定义指令的代码,它们指示CPU执行哪种操作。操作码通常是由一个或多个字节组成的二进制序列,每个字节都代表一个特定的操作。原创 2024-08-28 23:05:08 · 268 阅读 · 0 评论 -
【软件逆向】第21课,软件逆向安全工程师之加壳软件动态补丁技术,每天5分钟学习逆向吧!
因此,在进行此类操作时,请确保你了解可能的后果,并且只在合法和道德的范围内使用这些技巧。通常,你需要将补丁文件放在特定的目录下,或者通过补丁工具应用这个补丁。在选中的汇编代码上右键点击,选择“二进制-复制”,这样你就复制了汇编指令的原始内容。在补丁工具的内存地址输入框中,粘贴你刚刚复制的修改起始位置地址。2.打开补丁工具,在内存地址输入框, 粘贴修改的起始位置地址。1.打开目标软件,在修改的地址上右键复制,选中复制地址。在XH工具的修改指令输入框中,粘贴你刚刚复制的汇编代码。原创 2024-08-28 17:47:27 · 174 阅读 · 0 评论 -
【软件逆向】第19课,软件逆向安全工程师之认识程序模块,每天5分钟学习逆向吧!
19.认识程序模块如何查看模块?打开32odbg点击菜单字符程序名就是主模块,xxx.exeDLL模块:动态库系统模块:程序运行需要必备的系统支持库用户模块:程序目录中自带的库,一般也是DLL,输入法除外在调试程序时,了解程序模块是非常重要的。模块可以是可执行文件(.exe)、动态链接库(.dll)、或者其他可以被操作系统加载的组件。原创 2024-08-27 10:33:06 · 352 阅读 · 0 评论 -
【软件逆向】第18课,软件逆向安全工程师之OD或X32DBG中内存布局与内存窗口关系,每天5分钟学习逆向吧!
在X32DBG中,内存窗口(可能指的是你提到的"内存234"视图)显示的是当前选定的内存区域的数据。在使用OllyDbg(OD)这样的调试器时,理解内存布局与内存窗口的关系是非常重要的。如果你想要查找特定数据或模式在整个程序内存中的位置,你通常会在内存布局中进行搜索,因为它覆盖了更大的范围。内存布局提供了程序的内存全景,而内存窗口则是一个放大镜,让你能够查看和编辑特定内存区域的细节。在OD中,内存布局通常位于界面的一个单独的窗口中,它提供了程序加载到内存中的所有区域的概览。如何返回CPU窗口?原创 2024-08-27 10:32:25 · 255 阅读 · 0 评论 -
【软件逆向】第17课,软件逆向安全工程师之内存数据与字节序,每天5分钟学习逆向吧!
这里,最低位字节0x78存储在最低的内存地址处,而最高位字节0x12存储在最高的内存地址处。小端序(Little-Endian):与大端序相反,在小端序格式中,一个数的最低位字节存储在最低的内存地址处,而最高位字节存储在最高的内存地址处。大端序(Big-Endian):在这种格式中,一个数的最高位字节(最左边)存储在最低的内存地址处,而最低位字节(最右边)存储在最高的内存地址处。当你提到“内存中是倒叙存储”,可能是指在小端序系统中,多字节数据的字节顺序与它们在十进制或十六进制表示中的顺序相反。原创 2024-08-26 13:42:59 · 366 阅读 · 0 评论 -
【软件逆向】第11课,软件逆向安全工程师之字符串编码ASCLL(单字节)与UNOCODE(2个字节),每天5分钟学习逆向吧!
15.字符串编码ASCLL(单字节)与UNOCODE(2个字节)utf系列是通过UNOCODE演变。1个字节:一个字母和符号。原创 2024-08-23 10:14:22 · 418 阅读 · 0 评论 -
【软件逆向】第12-14课,软件逆向安全工程师之windows API函数断点、批量断点,每天5分钟学习逆向吧
API下断点 快捷键 ctrl+G,输入WinExec,ShellExecuteA,双击(OD需要回车触发)右下角代码可跳转到调用代码入口。提炼知识点:api批量添加断点、CE配合修改内容、保存可执行文件、使用工具:OD、CE。1.回到OD快速定位,基址区域右键 转到-表达式-输入修改的基址-点击确定。通过CE手动添加基址,修改编码格式位字符串,内容区域进行修改。2.选中修改的内容右键,复制到可执行文件,在弹窗里面右键保存文件即可。批量下api断点:OD编辑器点击插件Api断点设置工具。原创 2024-08-23 10:12:50 · 486 阅读 · 0 评论 -
【软件逆向】第11课,软件逆向安全工程师之windows API函数,每天5分钟学习逆向吧!
地址:https://learn.microsoft.com/zh-cn/windows/win32/dlgbox/dialog-box-functions。微软官方提供的应用程序接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件提供的能力。很软件逆向中会通过按钮事件或者创建弹窗进行断点调试,后续的学习中会有涉及。关注作者,备注课程编号,获取本课配套课件和工具程序。为什么要了解API?原创 2024-08-22 16:15:05 · 348 阅读 · 0 评论 -
【软件逆向】第10课,软件逆向安全工程师之断点学习,每天5分钟学习逆向吧!
3.选中当前断点 右键选择汇编可以修改成直接跳转指令 jmp,使程序绕过没有破解区域,直接跳转到破解成功。1.下完断点,点击原软件,如果命中断点会高亮显示,并且工具左下角显示已暂停,说明被断点拦截掉。3.cpu当前区域 右键搜索所有用户模块字符串,双击选中的字符串,添加断点。关注作者,备注课程编号,获取本课配套课件和工具程序。2.虚线代表选择性跳转,实线代表直接跳转。下断点/取消(F2),单步分析(F8)2.命中断点后,通过F8可逐步调试。每天一点小知识,课程工具关注领取吧。原创 2024-08-15 20:10:24 · 266 阅读 · 0 评论