Skip to content

Commit ec9da4d

Browse files
author
Trenton H.
committed
Major Update!!
So much has changed I forgot it all.. It's way faster and almost 100% accurate! All the modes before have been removed and replaced with FAST & STRICT modes. Custom Obfuscation using DnLib has been added and auto obfuscates the release build!!
1 parent 33d9856 commit ec9da4d

38 files changed

Lines changed: 159864 additions & 493 deletions

Memory.cs

Lines changed: 201 additions & 195 deletions
Large diffs are not rendered by default.

Program.cs

Lines changed: 333 additions & 298 deletions
Large diffs are not rendered by default.

ProxyPooler.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,9 @@
7070
<Content Include="logo.ico" />
7171
</ItemGroup>
7272
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
73+
<PropertyGroup>
74+
<PostBuildEvent>if "$(ConfigurationName)" == "Release" (
75+
"$(SolutionDir)obfuscation\NetAssembly\bin\Release\ProxyPoolObfuscator.exe" "$(TargetPath)"
76+
)</PostBuildEvent>
77+
</PropertyGroup>
7378
</Project>

obfuscation/NetAssembly/App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
5+
</startup>
6+
</configuration>

obfuscation/NetAssembly/Program.cs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using dnlib.DotNet;
2+
using dnlib.DotNet.Writer;
3+
using NetAssembly.Protection;
4+
using NetAssembly.Protection.FlowControl;
5+
using NetAssembly.Protection.Proxy;
6+
using SmokeyObfuscator.Protection;
7+
using System;
8+
using System.Collections.Generic;
9+
using System.IO;
10+
using System.Linq;
11+
using System.Threading.Tasks;
12+
using System.Windows.Forms;
13+
14+
namespace NetAssembly
15+
{
16+
internal static class Program
17+
{
18+
[STAThread]
19+
static void Main(string[] args)
20+
{
21+
if (args.Length == 0)
22+
{
23+
MessageBox.Show("No file path provided!", "ProxyPool Obfuscator");
24+
return;
25+
}
26+
string filePath = args[0];
27+
if (!File.Exists(filePath))
28+
{
29+
MessageBox.Show($"File not found at {filePath}!", "ProxyPool Obfuscator");
30+
return;
31+
}
32+
ModuleDefMD module = ModuleDefMD.Load(filePath);
33+
Constants.Process(module);
34+
AddIntPhase.Execute(module);
35+
ControlFlowObfuscation.CtrlFlow(module);
36+
JumpCFlow.Execute(module);
37+
MutateOpCodes.Process(module);
38+
NumberChanger.Process(module);
39+
Strings.Execute(module);
40+
Int.Execute(module);
41+
SaveAssembly(module, filePath);
42+
}
43+
public static void SaveAssembly(ModuleDefMD module, string path)
44+
{
45+
string AssemblyPath = Path.GetDirectoryName(module.Location);
46+
if (!AssemblyPath.EndsWith("\\")) AssemblyPath += "\\";
47+
string savePath = AssemblyPath + Path.GetFileNameWithoutExtension(module.Location) + " V2.0" + Path.GetExtension(module.Location);
48+
var opts = new ModuleWriterOptions(module);
49+
opts.Logger = DummyLogger.NoThrowInstance;
50+
module.Write(savePath, opts);
51+
MessageBox.Show($"{path} has been obfuscated!", "ProxyPool Obfuscator");
52+
Environment.Exit(0);
53+
}
54+
}
55+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
6+
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
7+
// 이러한 특성 값을 변경하세요.
8+
[assembly: AssemblyTitle("ProxyPoolObfuscator")]
9+
[assembly: AssemblyDescription("ProxyPool Obfuscator")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("Long.Integer/TTH")]
12+
[assembly: AssemblyProduct("ProxyPool Obfuscator")]
13+
[assembly: AssemblyCopyright("Copyright © Long.Integer/TTH 2025")]
14+
[assembly: AssemblyTrademark("Long.Integer/TTH")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
18+
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
19+
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
20+
[assembly: ComVisible(false)]
21+
22+
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
23+
[assembly: Guid("623271fa-0adb-483b-b54a-d153657bb3b7")]
24+
25+
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
26+
//
27+
// 주 버전
28+
// 부 버전
29+
// 빌드 번호
30+
// 수정 버전
31+
//
32+
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33+
// 기본값으로 할 수 있습니다.
34+
// [assembly: AssemblyVersion("1.0.*")]
35+
[assembly: AssemblyVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]

obfuscation/NetAssembly/Properties/Resources.Designer.cs

Lines changed: 63 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<!--
4+
Microsoft ResX Schema
5+
6+
Version 2.0
7+
8+
The primary goals of this format is to allow a simple XML format
9+
that is mostly human readable. The generation and parsing of the
10+
various data types are done through the TypeConverter classes
11+
associated with the data types.
12+
13+
Example:
14+
15+
... ado.net/XML headers & schema ...
16+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17+
<resheader name="version">2.0</resheader>
18+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24+
</data>
25+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+
<comment>This is a comment</comment>
28+
</data>
29+
30+
There are any number of "resheader" rows that contain simple
31+
name/value pairs.
32+
33+
Each data row contains a name, and value. The row also contains a
34+
type or mimetype. Type corresponds to a .NET class that support
35+
text/value conversion through the TypeConverter architecture.
36+
Classes that don't support this are serialized and stored with the
37+
mimetype set.
38+
39+
The mimetype is used for serialized objects, and tells the
40+
ResXResourceReader how to depersist the object. This is currently not
41+
extensible. For a given mimetype the value must be set accordingly:
42+
43+
Note - application/x-microsoft.net.object.binary.base64 is the format
44+
that the ResXResourceWriter will generate, however the reader can
45+
read any of the formats listed below.
46+
47+
mimetype: application/x-microsoft.net.object.binary.base64
48+
value : The object must be serialized with
49+
: System.Serialization.Formatters.Binary.BinaryFormatter
50+
: and then encoded with base64 encoding.
51+
52+
mimetype: application/x-microsoft.net.object.soap.base64
53+
value : The object must be serialized with
54+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+
: and then encoded with base64 encoding.
56+
57+
mimetype: application/x-microsoft.net.object.bytearray.base64
58+
value : The object must be serialized into a byte array
59+
: using a System.ComponentModel.TypeConverter
60+
: and then encoded with base64 encoding.
61+
-->
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:element name="root" msdata:IsDataSet="true">
64+
<xsd:complexType>
65+
<xsd:choice maxOccurs="unbounded">
66+
<xsd:element name="metadata">
67+
<xsd:complexType>
68+
<xsd:sequence>
69+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
70+
</xsd:sequence>
71+
<xsd:attribute name="name" type="xsd:string" />
72+
<xsd:attribute name="type" type="xsd:string" />
73+
<xsd:attribute name="mimetype" type="xsd:string" />
74+
</xsd:complexType>
75+
</xsd:element>
76+
<xsd:element name="assembly">
77+
<xsd:complexType>
78+
<xsd:attribute name="alias" type="xsd:string" />
79+
<xsd:attribute name="name" type="xsd:string" />
80+
</xsd:complexType>
81+
</xsd:element>
82+
<xsd:element name="data">
83+
<xsd:complexType>
84+
<xsd:sequence>
85+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
86+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
87+
</xsd:sequence>
88+
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
89+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
90+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
91+
</xsd:complexType>
92+
</xsd:element>
93+
<xsd:element name="resheader">
94+
<xsd:complexType>
95+
<xsd:sequence>
96+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
97+
</xsd:sequence>
98+
<xsd:attribute name="name" type="xsd:string" use="required" />
99+
</xsd:complexType>
100+
</xsd:element>
101+
</xsd:choice>
102+
</xsd:complexType>
103+
</xsd:element>
104+
</xsd:schema>
105+
<resheader name="resmimetype">
106+
<value>text/microsoft-resx</value>
107+
</resheader>
108+
<resheader name="version">
109+
<value>2.0</value>
110+
</resheader>
111+
<resheader name="reader">
112+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113+
</resheader>
114+
<resheader name="writer">
115+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116+
</resheader>
117+
</root>

obfuscation/NetAssembly/Properties/Settings.Designer.cs

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version='1.0' encoding='utf-8'?>
2+
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
3+
<Profiles>
4+
<Profile Name="(Default)" />
5+
</Profiles>
6+
<Settings />
7+
</SettingsFile>

0 commit comments

Comments
 (0)