手动patch白程序到VT全绿

admin 2024年7月14日11:37:14评论66 views字数 1192阅读3分58秒阅读模式

本篇文章是对 wondeekun 大佬文章《三年了,还是VT全绿,它到底凭什么?》的学习,文中提到直接 patch原始二进制,保留原文件的字符串、统计特征、资源等,防止被杀软识别的方法吸引了我的注意,最近抽出时间搞了一下,发现效果很好,轻轻松松就可以 vt 全绿,下面是对手动 patch 一些要点的记录。首先我们要找一个白程序,在 qq,微信,浏览器,腾讯会议等等常见的软件安装目录下随便找一个就行,但是要注意,我们这里要找的白 exe 是不能依赖于其他 dll 的,比如我这里找了一个百度网盘的 exe,把它单独拉出来之后双击直接报错:手动patch白程序到VT全绿那我们就要换一个 exe 了,找到任意一个双击之后无反应的 exe 即可。接下来我们把 exe 放到 cff explorer 或者任意一个 pe 查看工具中,看一下是多少位的程序,这关乎我们后面写的 shellcode,很显然,下面的程序是 64 位手动patch白程序到VT全绿接下来我们给它丢到 ida 里面寻找 patch 点手动patch白程序到VT全绿看到 winmain 最后跳转到另外一个函数里面,跟进 手动patch白程序到VT全绿我们直接在这里进行 patch 即可,当然也可以继续往后跟,但是有几点是要注意的,在进入到这个函数之前的程序执行流经过的所有字节我们是不能动的,同时 patch 的字节也不能超过 text 段位置,所以我们要找的函数应该有以下几点要求:

  • 函数尽量大

  • 尽量靠近 text 段段首的位置

  • 编写的 shellcode 尽量小

接下来就要定位函数在磁盘中的位置了,ida 给我们的是 va,我们要将其转换成 foa手动patch白程序到VT全绿利用 cff 工具即可轻松转化 手动patch白程序到VT全绿再去 ida 里面看一下对应的二进制值,没问题手动patch白程序到VT全绿接下来在 010 或者其他 hex 编辑器中找到对应位置即可手动patch白程序到VT全绿然后就可以开始编写 shellcode 了,我们尽量不要用 pe_to_shellcode 这样的工具将 exe 转成 shellcode,这类工具的原理大多是在原来的 exe 中添加 stub 来引导 exe 自己在内存中展开自己,原理和 rdi 一样的,然后在返回到 entrypoint,这样做的缺点是 shellcode 有点大,所以我们可以自己写 shellcode 然后提取 text 段字节即可,关于编写 shellcode 的内容就不多说了,可以参考https://github.com/clownfive/CppDevShellcode 这个项目来进行开发,一些注意事项作者也都进行了说明。另外尽量不要直接将 cs 的 shellcode 写进去,太大了,很容易出问题,因此这种 patch 的方法尽量采取远程拉取的策略,或者也可以利用一些资源修改工具将 cs 的 shellcode 写到资源中,然后我们自己写一段从资源中加载 shellcode 的 shellcode 即可,这里不再展开。我们这里直接修改对应字节,然后保存文件即可手动patch白程序到VT全绿这样此种 patch 手法仅仅是在静态上进行一定的规避效果,需要配合一定的动态规避手段才能达到较好的效果。最后看一下效果:手动patch白程序到VT全绿

手动patch白程序到VT全绿

原文始发于微信公众号(影域实验室):手动patch白程序到VT全绿

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月14日11:37:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   手动patch白程序到VT全绿https://cn-sec.com/archives/2950958.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息