C# File.Decrypt的代码示例
通过代码示例来学习C# File.Decrypt方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
File.Decrypt是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的File.Decrypt() 已经帮大家高亮显示了,大家可以重点学习File.Decrypt() 方法的写法,从而快速掌握该方法的应用。
File.Decrypt的代码示例1 - Main()
using System.IO; public static void Main(string[] args) { ArgumentParser _parser = new ArgumentParser(args); if (args.Length <= 0 || _parser.GetOrDefault("h", "help") == "true") { Help(); } if (_parser.GetOrDefault("f", "null") != "null") { _pePath = _parser.GetOrDefault("f", "null"); _encKey = _parser.GetOrDefault("e", "null"); _pid = _parser.GetOrDefault("pid", "null"); if (_pePath == "null") Help(); if (_pid == "null") Help(); } else { Help(); } if (!File.Exists(_pePath)) Help(); Console.WriteLine("[+]:Loading/Parsing PE File '{0}'", _pePath); Console.WriteLine(); byte[] _peBlob = Utils.Read(_pePath); int _dataOffset = Utils.scanPattern(_peBlob, _tag); Console.WriteLine("[+]:Scanning for Shellcode..."); if ( _dataOffset == -1) { Console.WriteLine("Could not locate data or shellcode"); Environment.Exit(0); } Stream stream = new MemoryStream(_peBlob); long pos = stream.Seek(_dataOffset + _tag.Length, SeekOrigin.Begin); Console.WriteLine("[+]: Shellcode located at {0:x2}", pos); byte[] shellcode = new byte[_peBlob.Length - (pos + _tag.Length)]; stream.Read(shellcode, 0, (_peBlob.Length)- ((int)pos + _tag.Length)); byte[] _data = Utils.Decrypt(shellcode, _encKey); stream.Close(); Loader.rexec(Convert.ToInt32(_pid), _data); } [DllImport("kernel32.dll")] public static extern IntPtr VirtualAlloc(IntPtr lpAddress, int dwSize, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll")] public static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, out uint lpThreadId); [DllImport("kernel32.dll")] public static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);
开发者ID:med0x2e,项目名称:SigFlip,代码行数:61,代码来源:Program.cs
在Main()方法中,File的代码示例类中的Decrypt的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
File.Decrypt的代码示例2 - Step5()
using System.IO; private bool Step5() { if (!this.Options.KeepBindSection) { var bindSection = this.File.GetSection(".bind"); if (!bindSection.IsValid) return false; this.File.RemoveSection(bindSection); var ntHeaders = this.File.NtHeaders; ntHeaders.FileHeader.NumberOfSections--; this.File.NtHeaders = ntHeaders; this.Log(" --> .bind section was removed from the file.", LogMessageType.Debug); } else this.Log(" --> .bind section was kept in the file.", LogMessageType.Debug); byte[] codeSectionData; var mainSection = this.File.GetOwnerSection(this.File.GetRvaFromVa(BitConverter.ToUInt32(this.PayloadData.Skip(this.SteamDrmpOffsets[3]).Take(4).ToArray(), 0))); if (this.SteamDrmpOffsets[3] != 0) { if (mainSection.PointerToRawData == 0 || mainSection.SizeOfRawData == 0) return false; } this.Log($" --> {mainSection.SectionName} linked as main code section.", LogMessageType.Debug); this.CodeSectionIndex = this.File.GetSectionIndex(mainSection); uint encryptedSize = 0; var flags = BitConverter.ToUInt32(this.PayloadData.Skip(this.SteamDrmpOffsets[0]).Take(4).ToArray(), 0); if ((flags & (uint)DrmFlags.NoEncryption) == (uint)DrmFlags.NoEncryption) { this.Log($" --> {mainSection.SectionName} section is not encrypted.", LogMessageType.Debug); codeSectionData = new byte[mainSection.SizeOfRawData]; Array.Copy(this.File.FileData, this.File.GetFileOffsetFromRva(mainSection.VirtualAddress), codeSectionData, 0, mainSection.SizeOfRawData); } else { this.Log($" --> {mainSection.SectionName} section is encrypted.", LogMessageType.Debug); try { var aesKey = this.PayloadData.Skip(this.SteamDrmpOffsets[5]).Take(32).ToArray(); var aesIv = this.PayloadData.Skip(this.SteamDrmpOffsets[6]).Take(16).ToArray(); var codeStolen = this.PayloadData.Skip(this.SteamDrmpOffsets[7]).Take(16).ToArray(); encryptedSize = BitConverter.ToUInt32(this.PayloadData.Skip(this.SteamDrmpOffsets[4]).Take(4).ToArray(), 0); codeSectionData = new byte[encryptedSize + codeStolen.Length]; Array.Copy(codeStolen, 0, codeSectionData, 0, codeStolen.Length); Array.Copy(this.File.FileData, this.File.GetFileOffsetFromRva(mainSection.VirtualAddress), codeSectionData, codeStolen.Length, encryptedSize); var aes = new AesHelper(aesKey, aesIv); aes.RebuildIv(aesIv); codeSectionData = aes.Decrypt(codeSectionData, CipherMode.CBC, PaddingMode.None); } catch { this.Log(" --> Error trying to decrypt the files code section data!", LogMessageType.Error); return false; } } var sectionData = this.File.SectionData[this.CodeSectionIndex]; Array.Copy(codeSectionData, sectionData, encryptedSize); this.CodeSectionData = sectionData; return true; }
开发者ID:atom0s,项目名称:Steamless,代码行数:76,代码来源:Main.cs
在Step5()方法中,File的代码示例类中的Decrypt的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的File.Decrypt方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。