![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆向工程
文章平均质量分 55
不要影响我叠Q
这个作者很懒,什么都没留下…
展开
-
《Intel开发手册卷3》读书笔记3
中断和异常是强制性的执行流的转移,从当前正在执行的程序或任务转移到一个特殊的称作句柄的例程或任务。当硬件发出信号时,便产生中断,中断的产生同正在执行的程序是异步的,即中断的产生是随机的。其用于处理处理器的外部事件,比如为外设服务的请求。使用INTn指令,软件也可以产生中断。异常是在处理器执行指令的过程中发现错误而产生的,比如除数为零。处理器可以检测出多种不同的错误,包括保护异常,页错误,内部机器错误。当处理器收到中断信号或检测到异常时,便挂起当前正在运行的进程或任务,而转去执行中断或异常处理例程。原创 2024-05-29 13:35:30 · 641 阅读 · 0 评论 -
《intel开发手册卷3》读书笔记2
处理器通过如下几个步骤将逻辑地址转换为线性地址:1.。原创 2024-05-24 09:02:01 · 574 阅读 · 0 评论 -
《intel开发手册卷3》读书笔记1
1)实模式:8086的寄存器只有16位,我们也习惯于称8086的工作模式为1·6位模式。后续的CPU为了保持兼容性,在芯片上了电以后,还必须运行于16位模式之下。这种模式还有个正式的名字叫做实模式。在实模式下,程序是不能通过内存管理单元间接访问物理内存的,而是直接访问物理内存。访问方式是通过“段寄存器:段内偏移”这种形式,计算方式为: 物理地址 = 段寄存器原创 2024-05-13 19:03:15 · 680 阅读 · 1 评论 -
《intel开发手册卷1》学习笔记3
—Call(调用过程)和RET(从过程返回)指令允许从一个过程(或子例程)跳转到另一个过程(或子例程),并随后跳转回(返回)到调用过程。因此,字符串操作可以从较高的地址开始,然后向较低的地址移动,也可以从较低的地址开始,然后向较高的地址移动。LDS(使用 DS 加载远指针)、LES(使用 ES 加载远指针)、LFS(使用 FS 加载远指针)、LGS(使用 GS 加载远指针)和 LSS(使用 SS 加载远指针)将远指针从内存加载到段寄存器和通用通用寄存器中。目标操作数指定目标指令的地址(指令指针)。原创 2024-05-10 13:58:19 · 454 阅读 · 0 评论 -
x64dbg中类似于*.exe+地址偏移
在CE和xdb中,形如*.exe+数字偏移形式的地址被称为模块地址,CE附加到进程后点击查看内存,显示如下图。但是xdbg如何关闭,倒不是很清楚,不过最新版本的xdbg sub后面的就是绝对虚拟地址。CE中可以关闭,从而显示绝对的虚拟地址,如下图所示。原创 2024-05-09 23:47:04 · 204 阅读 · 0 评论 -
《intel开发手册卷1》学习笔记1
在 IA-32 处理器上运行的任何程序或任务都有一组资源,用于执行指令和存储代码、数据及状态信息。这些资源(如图 3-1 所示)构成了 IA-32 处理器的基本执行环境。英特尔 64 处理器支持 IA-32 处理器的基本执行环境,以及 IA-32e 模式下的类似环境,它可以执行 64 位程序(64 位子模式)和 32 位程序(兼容性子模式)。基本执行环境由处理器上运行的应用程序和操作系统或执行程序共同使用。地址空间:在 IA-32 处理器上运行的任何任务或程序都可以寻址最大 4 GB 字节(原创 2024-05-08 16:22:55 · 634 阅读 · 0 评论 -
《intel开发手册卷1》学习笔记2
向量 32 至 255 为软件定义中断,可用于软件中断或可屏蔽硬件中断。请注意,处理器还定义了几个不指向 IDT 中条目的额外中断;其中最著名的是 SMI 中断。异常被分类为故障、陷阱或中止,具体取决于异常的报告方式以及导致异常的指令是否可以在不丢失程序或任务连续性的情况下重新启动。1)故障— 故障是一种通常可以纠正的异常,并且一旦纠正,就可以重新启动程序而不会失去连续性。当报告错误时,处理器将机器状态恢复到开始执行错误指令之前的状态。原创 2024-05-08 14:23:07 · 771 阅读 · 0 评论 -
MFC DLL注入失败一些错误总结
以下是dll绝对路径中均含有中文字符,会报错误:注入dll失败 Force load module failed:没有查找到地址OLEAUT32!尽量确保编程时路径全为英文字符,中文字符实在是难搞。原创 2024-05-07 23:34:11 · 320 阅读 · 0 评论 -
汇编语言学习笔记
CMP指令对标志位的影响如下:假想减法操作完成之后,CMP指令会根据运算结果修改溢出标志位、符号标志位、零标志位、进位标志位、辅助进位标志位和奇偶标志的值。12、NEG指令(negate):该指令通过将数字转换为相应的补码而求得其相反数(正数的原码、反码和补码相同,负数的反码=除符号位外,原码按位取反,负数的补码=负数的反码+1);8、XCHG指令(exchange data):该指令交换两个操作数的内容,注意它不接受立即操作数,除此之外,XCHG指令的操作数与MOV指令的操作数遵循同样的规则;原创 2024-04-19 22:00:26 · 888 阅读 · 0 评论 -
CE 搜索游戏背包技巧
4、重复以上步骤直到备选列表数量小于100。5、xdbg观察确定背包栏数组起始地址。1、游戏里移动或者交换第1格技能栏对象。3、第1格为空时,搜索数值0。6、分析背包栏数组的基址偏移。2、CE搜索变动的数值。原创 2024-04-21 07:47:13 · 150 阅读 · 0 评论 -
IA-32处理器寄存器浅析
IA-32架构下寄存器分为基本寄存器和系统寄存器。原创 2024-04-18 20:29:00 · 419 阅读 · 0 评论 -
汇编指令笔记
jmp x ) 其中x表示跳转地址,也会导致esp=esp-4。jmp [esp] ) ,ret指令会导致ep=esp+4。2、pop x 除了将esp指向的数据弹出栈外,还有一个隐含作用:add esp, 4。1、push x 除了将x压入栈外,还有一个隐含作用:sub esp,4。原创 2024-03-28 23:08:30 · 91 阅读 · 0 评论 -
植物大战僵尸更改阳光代码
在执行了“是什么访问了这个地址“指令”后(一定要找mov指令),需要去掉mov指令中的偏移量得到地址A,然后将地址A添加到地址列表并继续搜索地址A。原理感觉和操作系统中的多级页面很相似,不知猜测是否准确。CE中需要不停地重复:搜索数值====>找出是什么访问了这个地址 这两个步骤,反复尝试直到找出绿色的静态基址即表示完成。原创 2024-03-27 07:54:09 · 273 阅读 · 0 评论 -
Windows PE文件常识
不同模块的基地址一般式不同的,但是也有特殊情况,如果两个的基地址相同,就有曹子系统来决定这两个模块在虚拟地址空间中的额具体位置。该概念属于操作系统中的概念——每个空间都有独立的4GB(32为环境下)或者2^64B的虚拟地址空间,在这个空间中定位的地址为虚拟内存地址,在PE中,进程本身的VA等于:进程的基地址+相对虚拟内存地址。此类地址是一种特殊地址,其计算方法不是从文件头或者内存某个某开的额基地址算起,而是从某个特定的位置算起,这种地址在PE结构中很少见,例如在资源表中就出现过这样的地址。原创 2024-03-15 23:28:03 · 356 阅读 · 0 评论 -
dll远程线程注入
【代码】dll注入。原创 2024-01-26 07:29:54 · 378 阅读 · 0 评论 -
导入表注入(iathook)
源文件(iatHookMain.cpp)内容。头文件(hookMain.h)内容。原创 2024-01-29 22:56:55 · 514 阅读 · 0 评论 -
逆向之虚函数
【代码】逆向之虚函数。原创 2024-01-11 22:52:06 · 787 阅读 · 0 评论