shellcode怎么解密

shellcode怎么解密,第1张

替换是完全可行的!但是这类程序一般都会进行“加密”,这个加密并不是指对编译后的代码进行加密处理(比如UPX),而是原作者在进行编程的时候用另一种思维高悔或者采用编译器的语法分析器的漏洞进行变相的“加密”,这样的程序中寻址非常混乱,同一块内存空间,进行相同的 *** 作,会出现不同的多种寻址方式,这样一来,shellcode等替换 *** 作的难度将会大大提高!

要替换,首先你要考虑替换后的程序中所有的寻址完全正确,不会出现错误的地址!其次你要看看原程序是否对原来的shellcode段有校验 *** 作,如果有,破解之!最后对于具体的情况对李念塌头进行重建!

总之shellcode等替换 *** 作是比较复杂的,中间要考虑很多很多因素!

LZ为什么要去替换呢?既然自己已经弄到了shellcode,写一个小程序不是易如反掌嘛,何必大费功夫的去替换呢!

如果你实在想替换,给你个很好的建议,没事儿的时候写个EXP程序,定个全局指针变量,在程序中对这个指针进行下赋值 *** 作,随便赋个值,要是赋地址那种的,然后下面用嵌入式汇编写几个比较有特点的代码(比如连着10个"emms"),编译程序,等你有新的shellcode的时候,首先把shellcode附加到程序文件尾,然后反汇编,找到有特哪圆点的那些汇编指令(比如连着10个"emms"),找到上面的mov指令(对应源代码里指针赋值),把 *** 作数改成shellcode的内存线性地址,将下面的有特点的代码nop掉,保存!即可完成替换!

对于shellcode的解密,完全可以通过反汇编EXP程序来逐步分析,不过这个过程要求你有很高的汇编水平,分析出原shellcode所在的段!再有一种办法就是,把EXP程序加载到一个调试工具中,然后跟踪一下,shellcode有些地方类似病毒,一般可以跟踪出解密后的shellcode代码!由于原shellcode是加了密的,进行替换,很麻烦,很复杂,如果搞懂了加密方式还行,否则很困难!

shellcode是一段用于洞岩核利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出纳掘后,塞入一段可让CPU执枣空行的shellcode机器码,让电脑可以执行攻击者的任意指令。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12271308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存