Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.01.2013, 01:32   #11
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию

думаю второй т.к есть моменты когда не всегда хочешь зайти с хуком. Ну и цеплять к .екзешнику думаю будет палевно. А то всякие защиты от проверки длл. Хотя с каким легче работать.
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
goodvin1709 вне форума   Ответить с цитированием
Старый 13.01.2013, 07:06   #12
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Вот темка на английском про инжект
Вот пример проги которая инжектися к explorer.exe и меняет левую кнопку с правой при нажатии кнопки пуск
Я пытался переделать ее на фасм но как то не получилось и после 3х дней мучений бросил эту затею
Вложения
Тип файла: rar Hook.rar (33.5 Кб, 65 просмотров)

Последний раз редактировалось St1mul, 13.01.2013 в 12:04.
St1mul вне форума   Ответить с цитированием
Старый 13.01.2013, 08:09   #13
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Ps до сих пор не могу понять что делает функция DisableThreadLibraryCalls
может кто объяснить?

Последний раз редактировалось St1mul, 13.01.2013 в 14:09.
St1mul вне форума   Ответить с цитированием
Старый 13.01.2013, 08:58   #14
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

а если перевести название дословно? типа "отключение вызова библиотеки в потоке"?
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
За это сообщение SeregaZ нажился спасибкой от:
Старый 13.01.2013, 09:17   #15
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 63
Сказал Спасибо: 6
Имеет 21 спасибок в 19 сообщенях
Demion пока неопределено
По умолчанию

А что на MSDN не понятно? Не вызывает DllMain с значениями параметра fdwReason DLL_THREAD_ATTACH и DLL_THREAD_DETACH. По умолчанию DllMain вызывается с этими параметрами, когда процесс создает и уничтожает поток соответственно.

И так же не понял по какой причине в ла2 не должен работать метод внедрения кода через CreateRemoteThread и WriteProcessMemory. У меня все работает. Или речь идет о какой-то определенной защите на сервере?

Последний раз редактировалось Demion, 13.01.2013 в 09:19.
Demion вне форума   Ответить с цитированием
За это сообщение Demion нажился спасибкой от:
Старый 13.01.2013, 12:02   #16
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

1) У меня при получение потока с помощью CreateRemoteThread, сразу же выдает крит и пишет что core.dll или engine.dll че-нибудь не могут сделать. Сервер обычная гфш
2) DisableThreadLibraryCalls как я понял убирает функцию повторного вызова DllMain, когда мы закрываем ла2.
St1mul вне форума   Ответить с цитированием
Старый 13.01.2013, 12:23   #17
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

DisableThreadLibraryCalls запрещает вызовы длл-майн другими потоками процесса с параметром THREAD_ATTACH.
а при загрузке длл и ее выгрузке она вызывается всегда
обычным приложениям не создающим 100500 потоков в минуту этот параметр не существенен ИМХО.
как правило THREAD_ATTACH всеравно никто не обрабатывает.

Добавлено через 2 минуты
Цитата:
Сообщение от goodvin1709 Посмотреть сообщение
думаю второй т.к есть моменты когда не всегда хочешь зайти с хуком. Ну и цеплять к .екзешнику думаю будет палевно. А то всякие защиты от проверки длл. Хотя с каким легче работать.
цеплять можно по разному =)
хардкодить меняя файлы это не только палевно а иногда бесполезно, файл зменит какойнить чекер-апдейтер принудительно, если его чексумма не та.
__________________
читернуть бы ништяг

Последний раз редактировалось mira, 13.01.2013 в 12:23. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 13.01.2013, 12:35   #18
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Ну раз специалисты по ассемблеру собрались осмелюсь задать такой вопрос: Когда мы устанавливаем ловушку SetWidowsHookEx на чужой поток мы должны будем поместить процедуру нашего фильтра( обработчик сообщений) в длл. Скажите, что должна содержать процедура фильтра и что она должна возвращать?
У меня есть приложение и я хочу поставить ловушку сообщений, все делаю как надо SetWindowsHookEx возвращает не ноль, но когда хук срабатывает( я посылаю сообщение приложению, на которое поставлен хук) в приложении, само приложение критует

Последний раз редактировалось St1mul, 13.01.2013 в 12:39.
St1mul вне форума   Ответить с цитированием
Старый 13.01.2013, 13:31   #19
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 63
Сказал Спасибо: 6
Имеет 21 спасибок в 19 сообщенях
Demion пока неопределено
По умолчанию

Цитата:
Сообщение от St1mul Посмотреть сообщение
1) У меня при получение потока с помощью CreateRemoteThread, сразу же выдает крит и пишет что core.dll или engine.dll че-нибудь не могут сделать. Сервер обычная гфш
Покажи код, так сложно гадать.

Цитата:
Сообщение от St1mul Посмотреть сообщение
2) DisableThreadLibraryCalls как я понял убирает функцию повторного вызова DllMain, когда мы закрываем ла2.
Нет. DllMain будет вызываться, когда длл загружается (внедряется) и когда выгружается. DisableThreadLibraryCalls запрещает вызов DllMain, когда приложение запускает и завершает новый поток.

Последний раз редактировалось Demion, 13.01.2013 в 13:36.
Demion вне форума   Ответить с цитированием
За это сообщение Demion нажился спасибкой от:
Старый 13.01.2013, 13:37   #20
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Я бросил уже затею с получением потока.
Выложи лучше ты свои, если у тебя получилось
Вот недоделанные исходники на FASM c SetWindowsHookEx
exe:
Код:
format pe gui 4.0
entry start
include 'win32a.inc'
ThreadID = 2004 ; - поток на который хотим поставить ловушку
section '.data' data readable writeable
Name1		db 'Hook.dll',0
Hook		dd ?
Name2		db 'Hook.txt',0
Handle2 	dd ?
var1		dd ?
msg1		db 'Prees to unhook',0
msg2		db 'Hook',0
section '.code' code readable executable
start:
	invoke GetModuleHandleA,Name1
	invoke SetWindowsHookExA,WH_KEYBOARD,Hooking,eax,ThreadID
	mov [Hook],eax
	invoke CreateFileA,Name2,GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
	mov [Handle2],eax
	invoke WriteFile,eax,Hook,4,var1,0
	mov eax,[Handle2]
	invoke CloseHandle,eax
	invoke MessageBoxA,0,msg1,msg2,MB_OK
	mov eax,[Hook]
	invoke UnhookWindowsHookEx,eax
	invoke ExitProcess,0

section '.idata' import data readable writeable
	 library kernel32,'kernel32.dll',\
		 user32,'user32.dll',\
		 Hook,'Hook.dll'
	 import  kernel32,\
		 ExitProcess,'ExitProcess',\
		 GetModuleHandleA,'GetModuleHandleA',\
		 LoadLibraryA,'LoadLibraryA',\
		 CreateFileA,'CreateFileA',\
		 WriteFile,'WriteFile',\
		 GetProcAddress,'GetProcAddress',\
		 CloseHandle,'CloseHandle',\
		 GetCurrentThreadId,'GetCurrentThreadId'
	 import  user32,\
		 MessageBoxA,'MessageBoxA',\
		 SetWindowsHookExA,'SetWindowsHookExA',\
		 UnhookWindowsHookEx,'UnhookWindowsHookEx'
	 import Hook,\
		Hooking,'Hooking'
DLL:
Код:
format PE GUI 4.0 DLL
entry DllEntryPoint
include 'win32a.inc'
section '.data' data readable writeable
msg		db 'Hook works',0
msg1		db 'Nice',0
Name1		db 'Hook.txt',0
var1		dd ?
Hook		dd ?
var2		dd ?
Name2		db 'Hook.dll',0
LRESULT 	dd ?

section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
     cmp [fdwReason],1
     jnz bad
     mov eax,[hinstDLL]
     invoke DisableThreadLibraryCalls,eax
     jmp bad
bad:
     mov eax,1
     pop ebp
     ret 12
endp
;=========================================================

proc Hooking stdcall nCode,wparam,lparam
     invoke MessageBox,0,msg,msg1,MB_OK
     invoke OpenFile,Name1,var1,OF_READ
     invoke ReadFile,eax,Hook,4,0,0
     mov ebx,[Hook]
     mov eax,[nCode]
     mov ecx,[wparam]
     mov edx,[lparam]
     invoke CallNextHookEx,ebx,eax,ecx,edx
     mov [LRESULT],eax
     ret
endp
;==========================================================

section '.idata' import data readable writeable
	 library kernel32,'kernel32.dll',\
		 user32,'user32.dll'
	 import  kernel32,\
		 ExitProcess,'ExitProcess',\
		 LoadLibraryA,'LoadLibraryA',\
		 GetModuleHandleA,'GetModuleHandleA',\
		 FreeLibrary,'FreeLibrary',\
		 OpenFile,'OpenFile',\
		 ReadFile,'ReadFile',\
		 DisableThreadLibraryCalls,'DisableThreadLibraryCalls'
	 import  user32,\
		 MessageBox,'MessageBoxA',\
		 UnhookWindowsHookEx,'UnhookWindowsHookEx',\
		 RegisterWindowMessageA,'RegisterWindowMessageA',\
		 CallNextHookEx,'CallNextHookEx'


;==========================================================
section '.edata' export data readable
	export 'Hook.DLL',\
	Hooking,'Hooking'
	dd LRESULT

section '.reloc' fixups data discardable
ThreadID можно получить с помощью WinSpy (в атаче ) Переводим из 16ричной системы в 10 и записываем в екзешник в константу ThreadId
Вложения
Тип файла: rar WinSpy.rar (17.4 Кб, 20 просмотров)

Последний раз редактировалось St1mul, 13.01.2013 в 16:05.
St1mul вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!