Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - qwerty_crack

#11
es que yo se más o menos leer en inglés, pero no perfectamente, no siempre entiendo el significado..... bueno pero eso no sería nada, el tema es que no se bien que es lo que hace con el olly dbbgr.....


Citar..........in function that there are 2 string both "player" and in next function first string is "%d:%02d\n" so let now open ollydbg. start css and attatch olly to. since we know class defin i n client project we load client module from css module list.

next we right click, "search for", "all referenced text strings". let load and when finished load right click in result box and select "search for text". put in box "%d:%02d\n" without the qutos. you result 1 and above result u should see "player" and "player" above that, so you know you are right place..........

:-\ :-\ :-\

#12
Ingeniería Inversa / Re: loader hacer loaders
21 Julio 2007, 22:58 PM
LOADER

#include <windows.h>
#include <stdio.h>
#include <iostream.h>
#include <tlhelp32.h>

#define GAME "hl.exe"
#define DLL "Hook.dll"

bool ok;
int main()
{
int a;
HANDLE hAndle;
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);

  while(!ok)
  {
  HANDLE hAndle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if(Process32First(hAndle,&pe))
  {
 
do
{
HANDLE hTemp=OpenProcess(PROCESS_ALL_ACCESS, 0, pe.th32ProcessID);
if(hTemp)
{

if( strcmpi(pe.szExeFile, GAME) == 0)
{
                   
       hAndle = OpenProcess(PROCESS_ALL_ACCESS, FALSE,pe.th32ProcessID);
      LPVOID     lpRemoteAddress=VirtualAllocEx(hAndle,NULL,strlen(DLL),MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);

WriteProcessMemory(hAndle, lpRemoteAddress, (LPVOID)DLL, strlen(DLL), NULL);

CreateRemoteThread(hAndle, NULL, 0,(LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA"), lpRemoteAddress, 0, NULL);
ok=true;
break;
              }
                   
CloseHandle(hTemp);
      }
}
while(Process32Next(hAndle, &pe));
    }
}
   


  return 0;
}




DLL

__stdcall DllMain(HANDLE handle,DWORD message,LPVOID lpReservd)
{

switch(message)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls((HMODULE)handle);
MessageBox(NULL,"TEST","TEST",MB_OK);
//real_glBegin=(FUNC_GLBEGIN)DetourFunction((PBYTE)DetourFindFunction("OpenGL32","glBegin"),(PBYTE)myGlBegin);
//real_glViewport=(FUNC_GLVIEWPORT)DetourFunction((PBYTE)DetourFindFunction("OpenGL32","glViewport"),(PBYTE)myGlViewport);
break;
}



return TRUE;
}




#include "stdafx.h"
#include "DigiHook.h"
#include "psapi.h"
#include <windows.h>
#include <Tlhelp32.h>
#include <detours.h>
#include <string.h>
#define end1 '\n'

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

CWinApp theApp;

using namespace std;

// you need psapi.lib, and detours.lib

BOOL InjectIntoProcess(TCHAR* szExeName, TCHAR* szDllName);

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
int hooked = FALSE;
cout << "Waiting to inject ..." << end1;

while (!hooked)
{
if (InjectIntoProcess( _T( "hl2.exe" ), _T( "digihook.dll" ) ) )
{
hooked = TRUE;
cout << "HL2 successfully hooked!";
}
Sleep(100);
}

cin.get();
}

return nRetCode;
}

BOOL InjectIntoProcess(TCHAR* szExeName, TCHAR* szDllName)
{
    TCHAR szProcessName[MAX_PATH];
    TCHAR szDllNameAndPath[MAX_PATH];
    DWORD aProcesses[1024], cb, cProcesses;
    HANDLE hProcess = NULL;
    HMODULE hMod = NULL;
    UINT i = 0;

    // Get the full path to the DLL for later use
    GetCurrentDirectory(MAX_PATH, szDllNameAndPath);
    wcscat_s(szDllNameAndPath, _T("\\"));
    wcscat_s(szDllNameAndPath, szDllName);

    // Get the list of process identifiers
    if(!EnumProcesses(aProcesses, sizeof(aProcesses), &cb))
        return FALSE;

    // Calculate how many process identifiers were returned
    cProcesses = cb / sizeof(DWORD);

    // Get the name and process identifier for each process
    for(i = 0; i < cProcesses; i++)
    {
        hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, aProcesses[i]);

        if(hProcess)
        {
            if(EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cb))
            {
                GetModuleBaseNameW(hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR));
            }

            if(wcscmp(wcslwr(szProcessName), szExeName) == 0)
            {
                // We found the process, inject our DLL
                if(DetourContinueProcessWithDllW(hProcess, szDllNameAndPath))
                {
                    return TRUE;
                }
            }
        }
       
        CloseHandle(hProcess);
    }
    return FALSE;
}


este es un code de un loader, lo traje de un foro de programación sobre half life y otros, hay más codes, este lo hizo un tal sinner.
#13
Cita de: ShadowDark en 21 Julio 2007, 10:31 AM
Cita de: qwerty_crack en 20 Julio 2007, 23:19 PM
esas direcciones son de punteros a punteros.... pero necesito nuevas y no se bien como conseguirlas...... salu2

tus preguntas a veces resultan un tanto extrañas..

Salu2..

OH!

pero yo me pregunto, alguno vio el tutorial ese que puse el link, porke si no le dan una mirada no sabremos de lo que estamos hablando..........  ;D

#14
supongo que siempre tiene que haber una forma de poder inyectar nO?

me refiero a nuevo code que no detecte....
#15
esas direcciones son de punteros a punteros.... pero necesito nuevas y no se bien como conseguirlas...... salu2
#16
bueno, yo se algo de c++ pero no lo suficiente como para lograr pasar este anticheat por ahora, es decir lo que yo trato y muchos coders del cs tratan es de crear código que el sXe no detecte, y siempre el sXe lo actualizan y trae nuevos blokeos entonces de vuelta a crear nuevo code indetectable..... por eso es importante también ver por otras formas, por ejemplo emular el driver o algo de eso cosa que me imagino debe requerir ing inversa, además que el sXe está cifrado creo que con execryptor...... asike es cosa de ver quien se anima a ayudar..............  :-\ :-\ :-\ :-\ :-\ :-\ :-\
#17
NOO.. no es para parchear, no es para crackear nada, es que ves por ejemplo este code:

PDWORD hud_player_info_pointer_pointer_cs16 = (PDWORD)0x01950658;
PDWORD ref_params_pointer_pointer_hl_steam = (PDWORD)0x01D0F99F;
PDWORD cl_entity_pointer_pointer_hl_steam = (PDWORD)0x01EF4F84;
PDWORD fov_pointer_pointer_hl_steam = (PDWORD)0x0190EBE8;

bueno, esas direcciones son antiguas, necesito nuevas por eso quiero saber si las puedo obtener con el olly al igual que lo hace ese tutorial............ por eso si alguno sabe como hacerlo o se prende para ver como es.. JOSHA
#18
http://riperos.awardspace.com/documents/qazwsxedc.php

este tutorial explica pero para el counter-strike source, yo estoy tratando de ver para el counter-strike 1.6, pero supongo que debe ser parecido. el tema es que esto me cuesta entender es que está en inglés........ lo que si me importa es justo para obtener direcciones para usar en el code que tengo.......... gracias por la ayuda  :-*

#19
Ingeniería Inversa / Re: duda dumper
20 Julio 2007, 00:20 AM
aaa me habré confundido con esto que vi

CitarDe esta forma podremos controlar antes de un volcado los datos que se utilizaran para la realización del volcado a disco. Una vez puestos, podemos alterar las características de una sección (o de todas) para poder usar desensambladores de archivos muertos como el wdasm, en los archivos generados con el Volcador Total.......
#20
estaba leyendo esto sobre el editor pe, ahora me acerco más a como poder usarlo preferentemente  :-X :-X

CitarEditor PE

El editor PE es un complemento al Volcador Total. Algunas protecciones anti-dump alteran el contenido de las tablas de secciones del encabezado PE, bien añadiendo secciones ficticias, eliminando las cadenas de los nombres de sección e incluso añadiendo cadenas de texto o firmas donde deberían haber datos de secciones. Y todo para confundir a los volcadores (dumpers), que utilizan estos parámetros para realizar el volcado.

Con el editor PE del PUPE se puede:

- Editar. Los nombres y los datos de cada sección, incluso si no existen nombres de sección.
- Eliminar Secciones.
- Volcar secciones enteras a disco.

De esta forma podremos controlar antes de un volcado los datos que se utilizaran para la realización del volcado a disco. Una vez puestos, podemos alterar las características de una sección (o de todas) para poder usar desensambladores de archivos muertos como el wdasm, en los archivos generados con el Volcador Total.

esto se encuentra en este post