【逆向】【Part 2】逆向分析基础

本文详细介绍了逆向分析的基础知识,包括 MessageBox 函数、逻辑与指令AND及TEST和CMP的用法。讲解了如何通过TEST和CMP进行条件判断,并探讨了CALL和RET指令的工作原理。此外,还介绍了动态分析中的常用方法,如设置断点、数据断点、条件断点和API函数跟踪,以及在软件逆向分析中如何结合静态和动态分析进行深入研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基本知识回顾

1.MessageBox函数

PS:这个函数出现的频率太高了,建议记下来(以防考试)。

函数原型:
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT UType);
参数:
 hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。

 lpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。

 lpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。

 uType:指定一个决定对话框的内容和行为的位标志集。

2.测试指令TEST和CMP

  • AND

了解TEST之前先来看:逻辑与指令AND

逻辑与的运算规则是:进行逻辑与运算的两位都是逻辑1,则结果为1;否则,结果都是0。

相当于乘法,或 (or) 相当于加法

也就是说,逻辑0和逻辑0相与的结果为0,逻辑0和逻辑1相与的结果为0,逻辑1和逻辑0相与的结果为0,只有逻辑1和逻辑1相与的结果才为1。

and reg,imm/reg/mem   ;逻辑与:reg=reg^imm/reg/mem
and mem,imm/reg       ;逻辑与:mem=mem^imm/reg

and指令支持的目的操作数是寄存器和存储单元,源操作数是立即数、寄存器和存储单元,但不能都是存储器操作数。

它设置标志CF=OF=0,(进位和溢出为都是0),根据结果按定义影响SF,ZF,PF(符号、零标志、奇偶标志) 

  • TEST

测试指令TEST将两个操作数按位进行逻辑与运算。格式如下:

test reg,imm/reg/mem       ;逻辑与:reg^imm/reg/mem
test mem,imm/reg           ;逻辑与:mem^imm/reg

Test指令不返回逻辑与结果,只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值