AJUDA - Sobre addresses CFBR

Posts 1–9 of 9 · Page 1 of 1
AJUDA - Sobre addresses CFBR
Olá preciso de ajuda em algumas coisas...
Bom já dumpei e abri minha dll dumpada pelo olly dgb, mas quando abri fui la nos negocio para achar os textos etc...
Lá é cheio de simbolos não tem coisas tipo assim: recoil... Sabe?... Queria saber como acho o address nisso ai!!
Skype: ricardo.159753
Primeiro vc tem que seguir a logica do sdk do jogo.
Para o recoil vc pode usar pela WeaponMgr ( Gerenciamento das Arma ) e pelo PlayerClient.
vou citar pela WeaponMgr:
Code:
WeaponMgr->IndexArma->OffsetRecoil
Mas lembrando que não é apenas uma offset, são no minimo 4 para ficar um PerfectRecoil.
WeaponMgr é um Pointer no jogo ( instância um objecto, use *(DWORD*) para converte em pointer o address ).
IndexArma tem o valor de 4 byte, então em seu loop vc vai ter que usar ( WeaponMgr + ( 4 * Index ) ).

Bem cara, isso é o básico, vc teria que se aprofundar mais, busque tutorial aqui no site.
Código Norecoil + Nospread

Code:
#define ADDR_WEAPONMGR 		0x0018D917C		//CShell -> ReloadAnimRatio
#define VAL_WEAPONCOUNT		1717

VOID WINAPI startNorecoil( int onOff )
{
	DWORD CShell = ( DWORD ) GetModuleHandle( "CShell.dll" );

	if( CShell != 0 )
	{
		DWORD weaponManager = *( DWORD * ) ( CShell + ADDR_WEAPONMGR );

		if( weaponManager != 0 )
		{
			for( int i = 0; i < VAL_WEAPONCOUNT; i++ )
			{
				DWORD Weapon = *( DWORD * ) ( weaponManager + ( 4 * i ) );

				if( Weapon != 0 )
				{
					for( int y = 0; y < 9; y++ )
					{
						if( onOff )
						{
							*( float * ) ( Weapon + 0x3D2C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3D30 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3D34 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x1480 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x15E8 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x088C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x09F4 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B4C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B50 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B54 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x1318 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x41A0 + ( y * 4 ) ) = 0.0f; 
						}
						else
						{
							//Código para desligar a função ...
						}
					}
				}
			}
		}
	}
}

DWORD WINAPI startRountine( LPVOID )
{
	static int recoil;

	while( 1 )
	{
		if( GetAsyncKeyState( VK_F9 ) &1 )
			recoil =! recoil;

		startNorecoil( recoil );

		Sleep( 100 );
	}

	return 0;
}

BOOL APIENTRY DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
{
	DisableThreadLibraryCalls( hModule );

	if( dwReason == DLL_PROCESS_ATTACH )
		CreateThread( 0, 0, &startRountine, 0, 0, 0 );

	return TRUE;
}
Quote Originally Posted by tinipic View Post
Código Norecoil + Nospread

Code:
...
			for( int i = 0; i < VAL_WEAPONCOUNT; i++ )
			{
				DWORD Weapon = *( DWORD * ) ( weaponManager + ( 4 * i ) );

				if( Weapon != 0 )
				{
					for( int y = 0; y < 9; y++ )
					{
						if( onOff )
						{
							*( float * ) ( Weapon + 0x3D2C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3D30 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3D34 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x1480 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x15E8 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x088C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x09F4 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B4C + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B50 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x3B54 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x1318 + ( y * 4 ) ) = 0.0f;
							*( float * ) ( Weapon + 0x41A0 + ( y * 4 ) ) = 0.0f; 
...
No caso esse "for( int y = 0; y < 9; y++ )" serviria para que?
Quote Originally Posted by yaago View Post
No caso esse "for( int y = 0; y < 9; y++ )" serviria para que?
bom... a logica seria

para Y que eh = 0
para Y MENOR que 9
Ative o Y e execute o codigo

ps:assim q eu entendo o codigo...se eu expliquei errado por favor me corrigam
Quote Originally Posted by yaago View Post
No caso esse "for( int y = 0; y < 9; y++ )" serviria para que?
a instrução for é um laço de repetição, você pode estar lendo mais a respeito aqui:

https://msdn.microsoft.com/pt-br/library/b80153d8.aspx

mas nesse contexto, ele adiciona a cada offset 4 * y bytes, resultando assim em 4 * 9 = 36 ( hex = 0x24 ).

você pode ver um exemplo aqui:

A instrução FOR já sabia para que servia (é o básico RS)
Estava com dúvida de como chegou nisso, pois vi que são 6 strings no recoil e ai edita dezenas de endereços.

PS: Aqui tava funcionando, mas agora está dando desconectado do servidor, não tenho certeza se é só o no recoil ou pode ser outras funções de arma também
Obrigado!
Pesquisa por isso
C4PlantTime = Tempo para plantar a C4
C4DefuseTime = Tempo para defusar a C4
MaxCanDefuseDistance = " (2)
ReloadAnimRatio = Tempo pra recarregar arma
WallMgr = Atirar atrás da parede
WallShotEnable = " (2)
CrossHairPerRealSize = O quanto a bala vai espalhar
LowerAnimRate = Recuo Visual
Que piada! Querem tanto criar um hack que nem ao menos conseguem interpretar o português.
Posts 1–9 of 9 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?