一、基本信息
1.1运行情况
1.2 32位程序,UPX壳
二、脱壳
2.1工具脱壳
将附件拉里面即可
2.2OD手脱壳
首先F8单步执行,然后在ESP右键下硬件断点,最后F9进行执行
这个位置就是程序入口点(OEP),下面部分进行右键分析–》从模块中删除分析,再然后就可以脱壳了(右键用OD脱壳调试进程)
三、OD打开分析脱壳后的程序
搜索字符串在成功的函数头下断
如果输入和12011982相同,就执行成功
四、破解方法
直接修改JCC指令
目的使跳转执行
1、将jnz 改为 jz
2、修改标准寄存器将Z 0 改为 Z 1
五、总结
TEST 指令在两个操作数的对应位之间进行 AND 操作,
并根据运算结果设置符号标志位(SF)、零标志位(ZF)和奇偶标志位(PF)。
SF:第七位,符号标志位。相关指令执行后结果为负,SF为1,结果为正,SF为0;
ZF:第六位,零标志位。相关指令执行后结果为0,ZF为1,结果不为0,ZF为0;
PF:第二位,奇偶标志位。相关指令执行后结果最低字节bit位中1的个数,
若为偶数,PF为1,若为奇数,PF为0;
SHR(右移)指令使目的操作数逻辑右移一位,最高位用 0 填充。
最低位复制到进位标志位,而进位标志位中原来的数值被丢弃
inc自加
dec自减
JA 大于则跳转(无符号数) CF=0 and ZF=0
六、最重要的
**欢迎大佬批评交流**