首页 > 编程知识 正文

二维数组名是二级指针(花指令——多个指令共用字节)

时间:2023-05-04 20:31:01 阅读:123576 作者:3214

一、原理一个字节属于两条指令。

短跳指令的机器码是EB XX,XX是从跳位置到JMP指令的下一个指令的偏移量,例如EB 00跳至JMP的下一个指令,相当于什么都不做。 图:

EB FF时,跳至JMP指令本身的第2字节。

稍微利用这个特性就可以制作这样的代码。

执行跳转后,跳转到JMP的第二个字节,FF C0被识别为INC EAX,48被识别为DEC EAX,执行后反汇编的结果如下。

这就是无效汇编指令的原理。 EB FF C0 48这个硬代码可以添加到程序的任何地方。 让我们来看看效果:

二.示威

IDA PRO 7.5无法应对这种情况。

发现使用这个花指令不是非常敏感的操作,可以放心大胆地使用。 报告毒药的这两个引擎可以无视。 胡说八道。 赫尔洛沃勒报告毒药。 特别是那个yande,名字像黄色的网站。

三、另一个例子除了jmp外,还可以使用条件跳转指令和其他寄存器。 举个更复杂的例子吧。

此花命令也可以添加到任意位置。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。