【周四答疑】很多大佬说的 nop 到底是啥?

admin 2022年2月2日23:33:41评论285 views字数 1732阅读5分46秒阅读模式






【周四答疑】很多大佬说的 nop 到底是啥?

        因为相信, 所以看见         






答疑,就是在每周四,把问的比较多的,统一回答下。写文章也会比私信回复更详细些。


01
为啥网盘文件里面 没有相关工具




工具视频的相关文件里,为啥没有 jeb ,  jadx,  GDA这3个工具?


大佬,他们都有官网的。


还有百度云这限速,你不充钱,你能下到明天。


我贴一下地址:


GDA官网:

http://www.gda.wiki:9090/


jadx-gui官网:

https://github.com/skylot/jadx/releases/


jeb吾爱云盘:

https://down.52pojie.cn/Tools/Android_Tools/


讲道理,现在下软件我都去官网,我生怕一些软件站,给我捆绑个木马啥的。



02
很多文章里说的nop是个啥



nop这个概念我第一次听到的时候,是在windows时代。


很多年前,我还在混windows的时候。

经常在各种教程,各种视频里,看到各种大佬做这个经典的操作。

那个时候,他们会这么描述,我们nop掉这个关键call, nop掉这个关键跳。

就像下图这样

(我800年没有用od了,为了写文章专门下了一个,真是怀念 )

【周四答疑】很多大佬说的 nop 到底是啥?

这里,0x4012A3这里原本是指令是5个字节 E8 A8 FE FF FF。

call 00401150 这行汇编的意思是, 调用 0x00401150 这个地址的函数。

nop填充之后,0x004012A3这里的指令就变成了5个0x90,  也就是5个nop。

【周四答疑】很多大佬说的 nop 到底是啥?

nop掉 这句指令 / 这个关键跳 / 这个关键call ,其实就是把这句代码给删了,用相等长度的,无意义的指令去填充。

或者,你可以这么理解,直接用等长的无意义指令(nop),覆盖我们想要删除的任何指令, 这里的指令可以是函数调用,可以是跳转, 也可以是其他任何你看不顺眼的指令.


【周四答疑】很多大佬说的 nop 到底是啥?
【周四答疑】很多大佬说的 nop 到底是啥?

nop指令原理



nop这个指令,在x86指令集的实际含义是。

xchg eax, eax

这里,我拆解一下

xchg : 交换数据的汇编指令
eax   : 一个寄存器

这里寄存器是啥?

寄存器就是cpu里,用来存储数据的,一个速度非常快的存储单元。

实在不懂,理解成一块内存也行,不影响的。

xchg eax, eax 这句指令的意思是,交换两个寄存器 (两块存储区域)的值。

但是,聪明的大佬们一定注意到了,交换的源头和目的地是一样的。

这就好像,老师让你和你自己换座位一样。

这tm换个锤子。


【周四答疑】很多大佬说的 nop 到底是啥?
【周四答疑】很多大佬说的 nop 到底是啥?

多平台nop指令


x86平台的 nop 指令只有一个字节。0x90

为啥要用x86平台用0x90 作为nop指令填充?

  1. 因为0x90指令只有一个字节,x86指令不定长,长度可以是奇数,也可以是偶数,为了完美替代任何指令,只能用一个字节的指令去填充。

  2. 0x90这行指令,执行完之后,不会影响任何寄存器,内存,标志寄存器的值。不会对程序原本流程造成影响。


下面这些指令,在不同平台,起到了和x86平台上0x90一样的效果。

这里做了一个主流平台的nop指令对照表

大佬们凑合看

平台 arm Thumb x86
汇编 mov r0,r0 mov r8,r8 xchg eax,eax
操作码(hex) 00 00 A0 E1   C0 46         90


03
结束语



windows时代,很多大佬,为了防止自己的软件被同行破解。

经常搞一些反调试。

一般会比较文明,触发了就退出程序,也不会干别的了。

另外一些,人狠话不多的小老弟,就开始各种骚操作了,有的触发了就格盘, 有的是弹一个恐怖图片窗口,能吓你个半死那种。

或者弹个文字窗口,经常口吐芬芳,我之前就看到一个弹窗,"你老婆真棒"。

当时我心想,我不仅没老婆,女票都没有,你随便喷。

Android时代,产商的加固或者或各种CTF, 也会有很多反调试。

目的就是让你心态炸裂,让你觉得干逆向还不如去养猪,至少养猪没这么多糟心事。

那么,现在,你又碰到了一个反调试函数。

该咋办?

让他执行吗?

上nop啊。

最后说一句,上nop的时候要注意,有没有上下文引用之类的,有的话记得把这些上下文引用处理好。


0722 王某某于公司办公楼


关于作者:


一个乙方安全公司搬砖的菜鸡,移动安全从业者。最近忙着找女票,忙着在b站当扑街up主。


b站/公众号 :  移动安全王铁头  


希望和大佬们一起学习,一起成长




【周四答疑】很多大佬说的 nop 到底是啥?
【周四答疑】很多大佬说的 nop 到底是啥?

点个

【周四答疑】很多大佬说的 nop 到底是啥?

在看

你最好看

本文始发于微信公众号(移动安全王铁头):【周四答疑】很多大佬说的 nop 到底是啥?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月2日23:33:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【周四答疑】很多大佬说的 nop 到底是啥?http://cn-sec.com/archives/481587.html

发表评论

匿名网友 填写信息