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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 31.01.2013, 15:35   #51
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

я полагаю кнопку открытия инвентаря разрабы упразднили. всмысле не сам инвентарь - а движение пакетов. в С4 все было просто - кнопка инвентаря, и каждый раз приходил боооооооооооольшой пакет с описанием всего содержимого - айди по базе, айди по серверу, количество, какие-то условности типа заточки, и тому подобное. пакет довольно таки большой. в теории, если сто человек устроят флеш моб, открывая инвентарь на раз-два-три могут устроить кратковременный лаг

поэтому видимо содержимое инвентаря приходит при входе в мир, а после отслеживаются лишь его модификации - типа соска потратилась, адена прибавилась при поднятии дропа, и тому подобное. и уже сам клиент ведет бухгалтерию что пришло\ушло, а после уже по тыканию инвентаря - показывает внутреннюю бухгалтерию визуально. в интерлюде помница чтобы рефрешнуть инвентарь - то есть заставить сервер послать тебе полностью пакет инвентаря - надо было тыкнуть Таб по моему... причем еще раза два. видимо аналогичная фигня используется и в новых хрониках.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
За это сообщение SeregaZ нажился спасибкой от:
Старый 03.02.2013, 13:52   #52
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Всем спасибо, кто тут отвечает
Но вот проблема все это бесполезно против защиты, которая смотрит чек сумму файлов.
Но это еще решаемая проблема, пишем самый простой инжектор НО! при создание своего потока игра ждет секунды 3-4 и закрывается, при этом не посылается ни одного пакета.
Возможно защита сканирует все потоки и при появление нового закрывается
Мои предположения:
в файлах есть GG закриптованый WinLicense - думаю что это он
Мои предложения:
так как для создания ДиалогБокса нужен поток, можно приатачится к чужому, только вот не знаю какая Api функция может показать мне список активных потоков, кто знает напишите сюда
Кто сталкивался с этим?
St1mul вне форума   Ответить с цитированием
Старый 03.02.2013, 14:06   #53
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

St1mul,
Цитата:
Уведомление DLL_THREAD_ATTACH

Когда в процессе создается новый поток, система просматривает все DLL, спроецированные в данный момент на адресное пространство этого процесса, и в каждой из таких DLL вызывает DllMain со значением DLL_THREAD_ATTACH. Тем самым она уведомляет DLL-модули о необходимости инициализации, связанной с данным потоком. Только что созданный поток отвечает за выполнение кода в функциях DllMain всех
это про то как могут отслеживать создание потока, + в этот момент могут и хукать CreateThread и отслеживать адресс нового потока - и как то думать - все ок или чит
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти

служба поддержки 4gay - ICQ 642274822
Morfik вне форума   Ответить с цитированием
За это сообщение Morfik нажился спасибкой от:
Старый 03.02.2013, 15:01   #54
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Проблема 100% в том, что защита палит новый созданный поток, я это определил так:
1. Создал инжектор на основе глобального хука WH_KEYBOARD
2. Первый раз в процедуру обработки хука я написал вызов МеседжБокса
3. Спровоцировал вызов хук процедуры в игре, нажатим клавиши
4. Мне выдало месседжбокс и после нажатия кнопки ОК все работала успешно
Второй раз я написал в процедуру обработки хука вызов апи функции LoadLibraryA, которая загружала другую dll с ДиалогБоксом
Но на этот раз у меня окно с линейкой вылетало
;------------------------------------------------------------------------
нашел код на дельфи, который считывает потоки процесса, кто может его разобрать и сказать схему разбора 9 в дельфи не силен ;(
St1mul вне форума   Ответить с цитированием
Старый 03.02.2013, 18:13   #55
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

St1mul, как ты собрался аттачится к уже существующему потоку? Ты получил список потоков - ты собираешься как то переключить поток и заставить использовать его свой код? (впервые слышу о такой идеи, хотя возможность и не исключена)

Я бы предположил такой вариант обхода - найти длл которая отслеживает потоки и отключить для нее уведомления (что то типа DisableThreadLibraryCalls) и проверить нету ли хуков на CreateThread и его производные и если есть то снять их
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти

служба поддержки 4gay - ICQ 642274822

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

Суть такая: Устанавливаешь хук например на клавиатуру( как в примере ), и если пользователь нажал клавишу, например Enter, то к программе будет приатаченна длл с твоей процедурой обработки. Она будет автоматически отатачена когда процедура обработки закончится. В процедуру обработки вписываешь LoadLibrary и вот он успех: длл будет приатачена к приложению
FASM (.exe)
Код:
format pe gui 4.0
entry start
include 'win32a.inc'
section '.data' data readable writeable

Dll_Name		db 'Hook.dll',0
msg		db 'good',0

section '.code' code readable executable
start:
	invoke GetModuleHandleA,Dll_Name
	invoke SetWindowsHookExA,WH_KEYBOARD,Hooking,eax,0
	invoke MessageBoxA,0,msg,msg,MB_OK
	invoke ExitProcess,0
Fasm (.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  
section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
	invoke DisableThreadLibraryCalls,[hinstDLL]
	invoke MessageBox,0,msg,msg1,MB_OK
	mov eax,1
	ret
endp
proc Hooking
ret
endp
В атаче добавил скомпилинные исходники
Как использовать
1 Запустить 1.exe
2 Нажать 1 раз Ок
3 В любом приложении нажать кнопку клавиатуры.
4 Посмотреть через PETool что к этому приложению будет приатачена Hook.dll
5 Нажать остальные кнопки Ок
P.S. Щас попробую присвоить создаваемый поток engine.dll с помощью GetModuleHandleA
Отключить уведомления к сожалению не вариант, т к в этой dll еще и шифрация вроде бы
Вопрос: а как проверить есть ли хуки на CreateThread
Вложения
Тип файла: rar Hook.rar (1,011 байт, 20 просмотров)

Последний раз редактировалось St1mul, 03.02.2013 в 18:40.
St1mul вне форума   Ответить с цитированием
Старый 03.02.2013, 20:22   #57
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

St1mul, выложи код с которым происходит вылет игры
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти

служба поддержки 4gay - ICQ 642274822
Morfik вне форума   Ответить с цитированием
Старый 03.02.2013, 22:00   #58
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

l2cc - это длл голдфинча,
сервер старсэйдж
проверял на других серверах без защиты - работает идеально
Fasm (.exe)
Код:
 format pe gui 4.0
entry start
include 'win32a.inc'
section '.data' data readable writeable

Dll_Name	db 'Hook.dll',0
msg		db 'good',0

section '.code' code readable executable
start:
	invoke GetModuleHandleA,Dll_Name
	invoke SetWindowsHookExA,WH_KEYBOARD,Hooking,eax,0
	invoke MessageBoxA,0,msg,msg,MB_OK
	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',\
		 CreateThread,'CreateThread'
	 import  user32,\
		 MessageBoxA,'MessageBoxA',\
		 SetWindowsHookExA,'SetWindowsHookExA'
	 import Hook,\
		Hooking,'Hooking'
Fasm (.dll)
Код:
format PE GUI 4.0 DLL
entry DllEntryPoint
include 'win32a.inc'
section '.data' data readable writeable
DllName 	db 'l2cc.dll',0
section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
	invoke DisableThreadLibraryCalls,[hinstDLL]
	invoke LoadLibraryA,DllName
	mov eax,1
	ret
endp
;=========================================================
proc Hooking
start:
     invoke GetModuleHandleA,DllName
     ret
endp
;==========================================================

section '.idata' import data readable writeable
	 library kernel32,'kernel32.dll'
	 import  kernel32,\
		 GetModuleHandleA,'GetModuleHandleA',\
		 LoadLibraryA,'LoadLibraryA',\
		 DisableThreadLibraryCalls,'DisableThreadLibraryCalls'



;==========================================================
section '.edata' export data readable
	export 'Hook.DLL',\
	Hooking,'Hooking'
	dd 0
section '.reloc' fixups data discardable
St1mul вне форума   Ответить с цитированием
Старый 03.02.2013, 22:13   #59
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 63
Сказал Спасибо: 6
Имеет 21 спасибок в 19 сообщенях
Demion пока неопределено
По умолчанию

Цитата:
Сообщение от Morfik Посмотреть сообщение
St1mul, как ты собрался аттачится к уже существующему потоку? Ты получил список потоков - ты собираешься как то переключить поток и заставить использовать его свой код? (впервые слышу о такой идеи, хотя возможность и не исключена)
Как раз таки таким способом и обходил большинство фришных защит, когда последний раз занимался ла2. Заставить чужой поток выполнять свой код вполне возможно, исходники к сожалению навряд ли найду сейчас.

Если память не изменяет, то можно воплотить это с помощью SetThreadContext и изменение EIP (instruction pointer) регистра потока.

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

Demion, Пожалуйста чуть чуть поподробней напиши, я попытался сделать так
1. Длл с хук процедурой загружается
2. Получаем хэндл engine.dll (GetModuleHandleA)
3. Создаем поток с параметром из пункта 2 (CreateThread )
4. Длл с хук процедурой выгружается
и приложение критует( и так любое приложение критует
St1mul вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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