Simple Shellcode Loader
type
status
date
slug
summary
tags
category
icon
password

前言

之前的东西,加了个功能又学到了新东西,练下代码;
这一篇都非常简单!!!这垃圾代码再改改,硬编码下字符串、隐藏下WinAPI等,肯定效果很更好点。
 

开冲

就是简单的三部曲
  1. 申请内存
  1. 写入内存
  1. 然后加载
还有很多类似的这种..

ExecBin

这个就比较简单了,
通过ReadFIle读取二进制文件,放入到一个变量中,最后把这个变量CopyMemory拷贝进一块内存中,最后加载执行。
notion image
 

ExecTxt

像那种原始的shellcode payload,直接整进内存再加载,极为方便所以一些AV看的就比较严了。
我就在想原来看人家通过txt加载(正常文本反正不会杀吧),所以有了这个函数。
这里和上面其实差不了太多,核心的功能其实就是 读取Hex字符串转换为Shellcode
 
notion image
想要弄明白就调试一下,我直接用的@idiotc4t师傅的demo来做测试了
首先看没有转换的
notion image
可以从内存窗口看出就是单纯的字符串,要是拷贝进内存中,拷贝进去的不是shellcode而是这些字符串!这是踩了个坑 基础太差
 
然后接着跟进
notion image
可以看出来就是根据字符串转为对应的16进制的数据然后重新写入shellcode里
然后我们再看第二组
notion image
调试出为72 对应的ASCII也就是H,然后拷贝进内存就是对应的48了(ASCII的H转换为十六进制也就是48)
所以这样一个个走下去,一组转换为int类型,然后int类型转换为对应的十六进制,最后就放到对应的shellcode[i]里
只是找到对应的了,假如shellcode字符串里的是48(hex)就转换为ascii 10进制的72,在字符串中显示的就是H,但是在内存中显示的就是48(hex)了;
这样以此类推下去 每个取2位然后进行转换,我是这样理解的 有不对的请师傅们指出
这里放出来转换前和转换后的俩图,大家一看就明白了
notion image
注意看内存窗口 就是单纯的字符串,我们所需的shellcode也没有在内存中,你加载执行的只是这些字符串并不是所需的shellcode
我们在比对下转换后的
notion image
这样shellcode就正常在内存中了
这样一搞明白ExecTxt这个函数的原理就很简单了
就是把\x or 0x删除(这个功能我没写 我直接从就删除了然后到txt里),申请块内存,通过ReadFIle读取进来,然后把对应的字符串的16进制数据重新写入xue_buf里,最后CopyMemory拷贝进内存,CreateThread加载。
notion image
 

测试

最后测下免杀性了

Windows Defender

notion image
我擦 可以
notion image
起初我还不大敢相信 又放在downloads下 测试了一遍确实可以,加载bin就不出意外的杀了
 

火绒

notion image
notion image
 

360

notion image
notion image
 

© muxue 2021-2025