HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5001  
Старый 28.12.2020, 23:29
LuaQ
Познающий
Регистрация: 21.01.2019
Сообщений: 84
С нами: 3848030

Репутация: 18
По умолчанию

Цитата:
Сообщение от T4yz1e  

Вот если в процессе два .dll модуля с одинаковым названием, как можно получить оба? По хэндлу все время только 1
Попробуй получить с помощью прочёсывания всех модулей. Вот пример получения всех функций.

C++:





[CODE]
#include
#include
#include
int
main
(
)
{
DWORD processId
;
std
::
cin
>>
processId
;
HANDLE hModuleSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
processId
)
;
if
(
hModuleSnap
==
INVALID_HANDLE_VALUE
)
{
return
0
;
}
MODULEENTRY32 me32
;
me32
.
dwSize
=
sizeof
(
me32
)
;
if
(
Module32First
(
hModuleSnap
,
&
me32
)
)
{
std
::
cout

 
Ответить с цитированием

  #5002  
Старый 28.12.2020, 23:31
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

Репутация: 98
По умолчанию

[QUOTE="LuaQ"]

Попробуй получить с помощью прочёсывания всех модулей. Вот пример получения всех функций.

C++:





[CODE]
int
main
(
)
{
DWORD processId
;
std
::
cin
>>
processId
;
HANDLE hModuleSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
processId
)
;
if
(
hModuleSnap
==
INVALID_HANDLE_VALUE
)
{
return
0
;
}
MODULEENTRY32 me32
;
me32
.
dwSize
=
sizeof
(
me32
)
;
if
(
Module32First
(
hModuleSnap
,
&
me32
)
)
{
std
::
cout
 
Ответить с цитированием

  #5003  
Старый 28.12.2020, 23:55
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от T4yz1e  

Пробовал, только один выдает. EnumProcessModules тоже пробовал
Можно через PEB(LDR_DATA) попробовать
 
Ответить с цитированием

  #5004  
Старый 29.12.2020, 02:33
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

как в длл получить аргументы при запуске процесса?
 
Ответить с цитированием

  #5005  
Старый 29.12.2020, 02:35
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

как в длл получить аргументы при запуске процесса?
GetCommandLine
 
Ответить с цитированием

  #5006  
Старый 08.01.2021, 00:24
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

когда делаю http запрос в длл библиотеке, то он остается в строках процесса. есть ли возможность как-либо скрыть его?
 
Ответить с цитированием

  #5007  
Старый 08.01.2021, 00:44
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от SC6UT  

когда делаю http запрос в длл библиотеке, то он остается в строках процесса. есть ли возможность как-либо скрыть его?
Убирай строку
 
Ответить с цитированием

  #5008  
Старый 10.01.2021, 21:26
Carrentine
Постоянный
Регистрация: 25.12.2018
Сообщений: 568
С нами: 3886298

Репутация: 113


По умолчанию

Цитата:
Сообщение от KiN4StAt  

Убирай строку
Можно шифровать строку при компиляции и дешифровать в рантайме
 
Ответить с цитированием

  #5009  
Старый 12.01.2021, 10:41
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от T4yz1e  

Вроде хук

C++:





Код:
void
CALLBACK
WndProc_hooked
(
HWND
&
hwnd
,
UINT
&
Message
,
WPARAM
&
wparam
,
LPARAM
&
lparam
)
{
switch
(
Message
)
{
case
WM_KEYUP
:
if
(
wparam
==
'9'
)
{
// ...
}
break
;
default
:
break
;
}
}
static
hook
wndproc
(
reinterpret_cast

(
0x747EB0
)
,
WndProc_hooked
)
;

я не знаю, конечно, какой хукер ты юзаешь, но в хукнутой функции у тебя почему-то стоят референсы вместо просто параметров, вместо LRESULT - void, и нет вызова оригинальной функции, поэтому игра ломается. вот тебе пример рабочего хука с помощью MinHook:

C++:





Код:
#include 
#include "MinHook.h"
#pragma comment(lib, "libMinHook-x86-v120-mt.lib")
// либу выбираешь под версию тулсета и рантайм либу
WNDPROC origWndProc
=
nullptr
;
// создаём прототип для сохранения оригинального вндпрока
LRESULT __stdcall
HOOKED_WndProc
(
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
// твой код
return
origWndProc
(
hWnd
,
uMsg
,
wParam
,
lParam
)
;
// вызываем оригинальный вндпрок чтобы не сломать игру
}
// иницилиазируем минхук (1 раз)
MH_Initialize
(
)
;
// создаем и включаем хук
MH_CreateHook
(
reinterpret_cast

(
0x747EB0
)
,
&
HOOKED_WndProc
,
reinterpret_cast

(
&
origWndProc
)
)
;
MH_EnableHook
(
reinterpret_cast

(
0x747EB0
)
)
;
 
Ответить с цитированием

  #5010  
Старый 12.01.2021, 14:28
imring
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами: 5145387

Репутация: 183


По умолчанию

Цитата:
Сообщение от SC6UT  

но в хукнутой функции у тебя почему-то стоят референсы вместо просто параметров, вместо LRESULT - void, и нет вызова оригинальной функции, поэтому игра ломается
вот хук, который использовался - https://github.com/allwanttokissme/Y...r-hook-library. если тип возвращаемого значения void, то будет вызываться оригинальная функция (https://github.com/allwanttokissme/Y...er/hook.h#L327, https://github.com/allwanttokissme/Y...er/hook.h#L342)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.