Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 21.08.2013, 22:32   #1
 Старший сержант
Аватар для крайслер
 
крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Отправить сообщение для крайслер с помощью Skype™
 
Talking Инжектор Dll(C# + C++)

Знаю что тем по Инжекторы куча, но они в своем роде однотипные. Предлагаю вариант совместного использования C#(оболочка) и С++(модуль dll)....

C#(оболочка программы)

Проект WInForm:

Добавляем:

Код:
using System.Runtime.InteropServices;
using System.Management;
using System.IO;
Так же нужно включить ссылку System.Management: ПКМ по проекту - Добавить ссылку - NET и ищем в списке System.Management - OK.

Понадобится:
- listView
- contextMenuStrip
- openFileDialog

Размещаем на форме listView и настраиваем:
- FullRowSelect = true (выделятся будет вся строка, а не одна ячейка)
- GridLines = true (разделение линиями)
- View = Details
- заходим в коллекцию Сolumns и добавляем два зоголовка: "Имя процесса" и "pID".

Далее переходим в Свойства -> События и подписываемя на событие MouseUp(двойной клик на строчке)
В обработчике MouseUp привязываем наш contextMenuStrip:

Код:
ListView listView = sender as ListView;
         if (e.Button == System.Windows.Forms.MouseButtons.Right)
         {
             ListViewItem item = listView.GetItemAt(e.X, e.Y);
             if (item != null)
             {
                 item.Selected = true;
                 contextMenuStrip1.Show(listView, e.Location);
             }
         }
Теперь при клике ПКМ, в поле listView, выскочит контекстное меню.

Заполним listView списком процессов. Для этого напишем такую "функцию":

Код:
//Получаем имена процессов и их pID
     void refResh()
     {
         listView1.Items.Clear();
         ManagementObjectSearcher FindprocessEum = new ManagementObjectSearcher("SELECT * FROM Win32_Process");
         ListViewItem add_item;
         foreach (ManagementObject process in FindprocessEum.Get())
         {
             add_item = new ListViewItem(process["Name"].ToString());
             add_item.SubItems.AddRange(new string[] { process["ProcessId"].ToString() });
             listView1.Items.Add(add_item);
         }
     }
Отработаем ее при запуске программы.Для этого допишем под иницализацией refResh();

Код:
.......................
public Form1()
     {
         InitializeComponent();
         refResh();
        
     }
.....................
Теперь "подключим" наш модуль.
Указываем импорт:

Код:
[DllImport("InjectModule.dll", CharSet = CharSet.Auto)]
     public static extern void StartInject([In][MarshalAs(UnmanagedType.LPStr)]string PROC_NAME, [In][MarshalAs(UnmanagedType.LPStr)]string PatchDll);
Добавляем к контекстному меню пункты: "Обновить", "DllInject","Выход".

Двойной клик по "Обновить", пишем:
Код:
refResh();
Теперь по нажатию на этот пункт список процессов обновится.


Двойной клик по "Выход", пишем:
Код:
Application.Exit();

Двойной клик по "DllInject", пишем:
Код:
if (File.Exists("InjectModule.dll"))//проверяем есть ли файл
{
openFileDialog1.Title = "Выберете DLL";
openFileDialog1.FileName = "";
openFileDialog1.Filter = "DLL (*.dll)|*.dll";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StartInject(listView1.SelectedItems[0].SubItems[0].Text, openFileDialog1.FileName);
}
}
else
{
MessageBox.Show("InjectModule.dll не найден!", "Error");
}


[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
ВТ сделать не могу, так как ГГГ-модем "посылает"....
________________

-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
  Ответить с цитированием
Пользователь сказал cпасибо:
Грант97 (05.02.2015)
Старый 22.08.2013, 00:24   #2
 Разведчик
Аватар для =TONIK=
 
=TONIK= скоро будет известен=TONIK= скоро будет известен=TONIK= скоро будет известен
Регистрация: 02.02.2012
Сообщений: 5
Популярность: 213
Сказал(а) спасибо: 0
Поблагодарили 7 раз(а) в 6 сообщениях
 
По умолчанию Re: Инжектор Dll(C# + C++)

Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию
  Ответить с цитированием
Старый 22.08.2013, 01:42   #3
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Инжектор Dll(C# + C++)

Цитата:
Сообщение от =TONIK=Посмотреть сообщение
Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию

Плюсы для этого... более приспособлены, что ли...
  Ответить с цитированием
Старый 22.08.2013, 08:03   #4
 Старший сержант
Аватар для крайслер
 
крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Отправить сообщение для крайслер с помощью Skype™
 
По умолчанию Re: Инжектор Dll(C# + C++)

Цитата:
Сообщение от =TONIK=Посмотреть сообщение
Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию

Координального различия в работе практически нету... отличается только способ реализации....
________________

-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
  Ответить с цитированием
Старый 27.10.2013, 14:06   #5
 Разведчик
Аватар для Serpol(1)
 
Serpol(1) никому не известный тип
Регистрация: 12.10.2012
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 2
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Инжектор Dll(C# + C++)

Если мне память не изменяет, PerX написан на VB.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 08:34.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net