PDA

View Full Version : |Dúvida| Ajudar por favor não sei se to hook certo a dll



dedicadobk
20/11/2015, 01:31 PM
To tentando Hook uma dll em um GameServer 97d+99i


Ja localizei os offSets


07311658 <=> LoadlidraryA
07311620 <=> GetProcAddress
004CC1B6 <=> OffSet Limpo
004CC1C8 <=> OffSetFunçao




1ª Abrir o Game Server Com Olly e localizei os offSets achei esses.

004CC13B <=> EntryPoint
07311658 <=> LoadlidraryA
07311620 <=> GetProcAddress


2ª Localizar uma área em branco caracterizada como OffSet vazios (OffSet Limpo)


3ª Selecionei a linha do OffSet vazio cliquei com o botao direito e selecionei Foltow in Dump

em ASCII escrevi o nome da dll e a Funçao respeitando os digitos

004CC1B6 <=> OffSet Limpo Nome Da dll
004CC1C8 <=> OffSet Limpo Nome Da Funçao Da dll

================================================== =======================================
====================================ASCII========= =======================================
================================================== =======================================
CPU Dump
Address Hex dump ASCII
004CC1B6 00 00 00 00|00 00 00 00|00 00 00 00|00 00 00 00| HardPower.dll (<=Nome Da dll 13 digitos)
HardPower

CPU Dump
Address Hex dump ASCII
004CC1C8 00 00 00 00|00 00 00 00|00 00 00 00|00 00 00 00| GameServer (<=Nome Da Funçao Da dll 10 digitos)





4ª Dei um espaço de 50 OffSets



5ª Selecionei alguns OffSet Vazios ai cliquei com o botao direito digitar em (edit)=> (Fill With NOPs) esses codigos que eu vi em um tutorial.


PUSH 004CC1B6 = OffSet Limpo
CALL DWORD PTR DS:[07311658] =LoadlidraryA
OR EAX,EAX
JE 004CC13B = EntryPoint
PUSH 004CC1C8 = OffSetFunçao
PUSH EAX
CALL DWORD PTR DS:[07311620] = GetProcAddress
CALL EAX
JMP 004CC13B

6ª selecionei todos esses OffSets que colei aqui em cima ai cliquei em Edit Copy to executable
na nova pela que abriu apertei em Save File GameServer.



================================================== ================================================== ==============
LordPE Redefinir o EntryPoint Calculadora cientifica valor em Hex ai Subtraímos 004CC1B6 - 00400000 = CC1B6 = 000CC1B6 => Novo EntryPoint


004CC13B - 00400000 = CC13B = 000CC13B => EntryPoint

004CC1B6 - 00400000 = CC1B6 = 000CC1B6 => Novo EntryPoint


Não ta funcionando o hook no gameserver nao sei se ta serto.

s00x
20/11/2015, 04:30 PM
Brother, testa com este EntryPoint 0x0049F8E8 como original.
Porque você ta passando seu EntryPoint no Hook, tem que ser o EntryPoint original do GameServer.

No caso vai ficar assim.

PUSH 004CC1B6
CALL DWORD PTR DS:[07311658]
OR EAX,EAX
JE 0049F8E8
PUSH 004CC1C8 = OffSetFunçao
PUSH EAX
CALL DWORD PTR DS:[07311620]
CALL EAX
JMP 0049F8E8

dedicadobk
20/11/2015, 05:15 PM
nao ta dando serto deve ser o gameserver tem como vc ou alguem posta uma Gameserver unpacked?

s00x
20/11/2015, 05:37 PM
Tenho este aqui testa ae [Only registered and activated users can see links]