REVERSE(IDA修改花指令/栈平衡/z3)学习笔记

1
2

3

中断指令表https://blog.csdn.net/trochiluses/article/details/20008631

IDA

快捷键

修改数据格式

IDA去除花指令

花指令
此处由花指令。
显示偏移:
opcode
opcode

去除脚本:

#include <idc.idc>

static main()
{
	auto i,from,size;
	from=0x400000;	//起始地址
	size=0x2000;	//扫描数据块大小

	for ( i=0; i < size; i++ )
	{
		if ((Byte(from)==0xe8)&&(Dword(from+1)== 0))
		{
			PatchByte(from,0xeb);
			PatchByte(from+1,0xE);
			continue;
		}
		from++;
	}
	Message("\n" + "OK\n");
}

脚本中0xEB是jmp指令,0x0E是指jmp14个字节,在0x40102F处跳转14个字节就是0x40103D

修改后
F5反编译:
c

IDA修复栈平衡

反编译报错
反编译时报错,sp栈有错误。
查看栈帧,首先打开栈帧
打开栈帧
main_0汇编里有栈帧不平衡:
不平衡
在084右键修改栈帧,位0(尽量小的值)。
0
平衡了:
平衡
平衡

z3

pip install z3-solver
from z3 import *
x,y,z=Ints('x y z')
s=Solver()
s.add(2*x+3*y+z==6)
s.add(x-y+2*z==-1)
s.add(x+2*y-z==5)
print s.check()
print s.model()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小龙在山东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值