elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1] 2
1  Programación / Ingeniería Inversa / Check Integrity Macro Themida :v en: 20 Enero 2019, 18:28 pm
¿Cómo se parchean?, todos los check integrity de themida son iguales pero nunca encontre un tutorial o algo que explique como parchearlos.

Lo que se es que leen sections y partes de códigos etc, tengo los ADDRESS de donde estan etc, si alguien es tan amable de explicarme que retornar o hacer xD.
2  Programación / Programación C/C++ / Sobre Crear pestañas CreateWindowExA etc en: 31 Diciembre 2018, 21:51 pm
Hola, queria saber porque tengo un problemita a la hora de utilizar CreateWindowExA.

Resulta que yo estaba creando una DLL que crea botones DENTRO de un programa externo, y lo hago de la siguiente forma:

El tema es que al CREAR este nuevo boton en el programa, resulta que ESTE BOTON UTILIZA EL WNDPROC DE EL PROGRAMA Y EXPLOTA TODO Y NO USA EL DE MI DLL, queria saber si alguien sabe como realizar esto que quiero de la forma correcta.

(CABE DESTACAR QUE EL BOTON SE CREA TODO, PERO AL APRETARLO EXPLOTA T2)

Código:
HWND hwnd;
LRESULT CALLBACK WndProc(HWND hwndMain, UINT uMsg, WPARAM wParam, LPARAM lParam);

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
if (ul_reason_for_call)
{
DisableThreadLibraryCalls(hModule);
DbgPrint("Injected1");
hwnd = FindWindowA( NULL, "MiProgramaExterno");
WNDCLASSEX windowClass;
windowClass.lpszClassName = L"Main Class";
windowClass.cbClsExtra = NULL;
windowClass.cbWndExtra = NULL;
windowClass.cbSize = sizeof(WNDCLASSEX);
windowClass.hbrBackground = (HBRUSH) CreateSolidBrush(RGB(240,240,240));
windowClass.hCursor = LoadCursor(NULL,IDC_ARROW);
windowClass.hIcon = LoadIconA(hModule, "ICONO");
windowClass.hIconSm = LoadIconA(hModule, "ICONO");
windowClass.hInstance = hModule;
windowClass.lpfnWndProc = WndProc;
windowClass.lpszMenuName = NULL;
windowClass.style = CS_VREDRAW | CS_HREDRAW;
RegisterClassEx(&windowClass);
//(HINSTANCE)GetWindowLongW(hwnd, GWL_HINSTANCE)


/*HWND Main = CreateWindowExW(NULL,L"Main Class",L"nuevapestañaaldope",
  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  100,100,500,500,
  NULL,NULL,hModule,NULL);*/

MSG msg;
while(GetMessageW(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}
return TRUE;
}


LRESULT CALLBACK WndProc(HWND ahwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
{
HWND hwndButton = CreateWindowW( L"BUTTON", L"ok", WS_CHILD | WS_VISIBLE,10,10,100,100,hwnd,(HMENU)1,hModule, NULL);
}
break;
case WM_COMMAND:
{
if(LOWORD(wParam) == 1)
{
MessageBoxA( ahwnd, "qwe", 0, 0 );
}
}
case WM_PAINT:
{
PAINTSTRUCT Ps;
HDC hdc;
hdc= BeginPaint(ahwnd,&Ps);
// SetBkColor(hdc,RGB(0,0,0));
//SetTextColor(hdc,RGB(0,0,0));
// TextOut(hdc,200,150,L"Hello World!",12);

EndPaint(ahwnd,&Ps);
}
break;
case WM_CLOSE:
{
PostQuitMessage(WM_QUIT);
}
break;
default:
return(DefWindowProc(ahwnd,message,wParam,lParam));
}

return(0);
}
3  Programación / Ingeniería Inversa / VMProtect pregunta deteccion en: 25 Diciembre 2018, 17:56 pm
Hola, queria preguntar que pasa con VMProtect, les comento el caso, estoy desamblando cierto programa QUE SI TIENE VMPROTECT, el tema:

Al utilizar el VMProtect Ultra Unpacker v1.0, funciona correctamente si en el Phant0m coloco la opcion de HIDE PEB, pero si coloco esta opción no puedo dumpearlo porque en programas externos no aparece, ni en scylla ni en imprec.

El script lo pide en StrongOD pero la coloco y a la hora de darle a run, salta el cartelito de que se detecto un debugger.

Alguien que sepa que hacer?, estaba pensando injectar una dll atras de esa y ocultar el peb y a la hora de dumpearlo relinkear el peb pero es otro temita con ollydbg...

Si alguien me puede ayudar :$
4  Programación / Ingeniería Inversa / ¿Qué tipo de protección es esta? en: 21 Noviembre 2018, 18:01 pm
Hola, estoy descompilando un programa que útiliza Themida, me parece que es de las últimas versiones porque no aparece en ProtectionId para ver el packer, y versiones antiguas de dicho programa si aparece.

El caso, cuando veo el retaddress de algunas llamadas de las funciones aparece que se llama desde:

Código:
pushad
jmp injected.BD212F
mov al,byte ptr ds:[61B729F2]
mov edx,4B4E2E27
dec ebp
loopne injected.BD2104
call far 5850:51B1B3F5
pop ecx
jp injected.BD213F
jo injected.BD213F
jmp injected.BD2158
sti
push esp
loopne injected.BD216F
and dword ptr ds:[ebx+524827BE],ebx
xor ecx,dword ptr ds:[ebx]
sbb dword ptr ds:[eax+71B7DF53],eax
mov eax,559C61E4
mov dword ptr ss:[esp],7974FAD5
dec dword ptr ss:[esp]
add dword ptr ss:[esp],47F69739
add dword ptr ss:[esp],6CFB1100
not dword ptr ss:[esp]
push ebx
mov ebx,1
add dword ptr ss:[esp+4],ebx
pop ebx
dec dword ptr ss:[esp]
add dword ptr ss:[esp],2E66A368
push esi
mov dword ptr ss:[esp],7ADBFEE5
and dword ptr ss:[esp],3CEF2791
add dword ptr ss:[esp],3E3059E5
push edi
mov edi,FFD3A3B7
add dword ptr ss:[esp+4],edi
pop edi
shl dword ptr ss:[esp],1
add dword ptr ss:[esp],12DE9FCD
push 711D8CC5
mov dword ptr ss:[esp],eax
mov dword ptr ss:[esp],737FF923
sub dword ptr ss:[esp],crypt32.757FFA43
shr dword ptr ss:[esp],1
push edi
mov edi,D41E1E90
add dword ptr ss:[esp+4],edi
pop edi
mov dword ptr ss:[esp],eax
sub esp,4
mov dword ptr ss:[esp],edi
mov dword ptr ss:[esp],edx
mov dword ptr ss:[esp],eax
mov dword ptr ss:[esp],edi
mov dword ptr ss:[esp],ebx
push dword ptr ss:[esp+10]
push dword ptr ss:[esp]
pop eax
push eax
mov eax,esp
add eax,4
push edx
mov edx,4
add eax,edx
pop edx
xchg dword ptr ss:[esp],eax
pop esp
push dword ptr ss:[esp+8]
mov ebx,dword ptr ss:[esp]
push edi
push 7F39BAFC
mov dword ptr ss:[esp],esp
add dword ptr ss:[esp],4
pop edi
add edi,4
add edi,4
xchg dword ptr ss:[esp],edi
pop esp
mov dword ptr ss:[esp+8],eax
mov dword ptr ss:[esp+10],ebx
push dword ptr ss:[esp]
pop ebx
push edi
mov edi,esp
push eax
mov eax,4
add edi,eax
pop eax
add edi,4
xchg dword ptr ss:[esp],edi
mov esp,dword ptr ss:[esp]
push dword ptr ss:[esp]
pop eax
push edi
mov edi,esp
add edi,4
add edi,4
xor edi,dword ptr ss:[esp]
xor dword ptr ss:[esp],edi
xor edi,dword ptr ss:[esp]
mov esp,dword ptr ss:[esp]
jmp injected.68F549
call eax <- ACA llama

Llama desde EAX, yo puedo colocar breakpoints, pero al colocar breakpoint en ese lugar no ocurre nada, y si lo nopeo crashea al llamarlo.

Alguna idea?, esta funcion se repite 6 o 7 veces
5  Programación / Ingeniería Inversa / ¿Que packer/protector es este? en: 7 Abril 2018, 21:32 pm
Hola, queria preguntar si alguien conoce cual es el protector o packer de este archivo:

¿Alguna idea para desempaquetar esto o que packer contiene realmente?
Ningun tipo de script me anduvo de EXECryptor.
-> Es una DLL por las dudas

(El tema es que tiene diferentes sections) (Cosa que el comun no lo tiene)


Cheating Death v4.33.4 - (cs 1.6)

RDG Packer Detector v0.7.6 ->
Citar
<<Multiple Protections>>
======================
EXECryptor Deteccion Heuristica
EXECryptor (Compress Code & Data)
EXECryptor v2.1.15
EXECryptor v2.2.x - v2.4.x

PROTECTiON iD ->
Citar
Scanning -> E:\aaaCheating-Death\Cheating-Death\4.33.4\cd.dll
File Compression State : 0 (Not Compressed)
File Type : 32-Bit Dll (Subsystem : Win GUI / 2), Size : 425984 (068000h) Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x43988949 -> Thu 08th Dec 2005 19:28:09 (GMT)
[TimeStamp] 0x43988949 -> Thu 08th Dec 2005 19:28:09 (GMT) | PE Header | - | Offset: 0x00000068 | VA: 0x10000068 | -
[!] Executable uses TLS callbacks (1 total... 0 invalid addresses)
[LoadConfig] CodeIntegrity -> Flags 0xA3F0 | Catalog 0x46 (70) | Catalog Offset 0x2000001 | Reserved 0x46A4A0
[LoadConfig] GuardAddressTakenIatEntryTable 0x8000011 | Count 0x46A558 (4629848)
[LoadConfig] GuardLongJumpTargetTable 0x8000001 | Count 0x46A5F8 (4630008)
[LoadConfig] HybridMetadataPointer 0x8000011 | DynamicValueRelocTable 0x46A66C
[LoadConfig] FailFastIndirectProc 0x8000011 | FailFastPointer 0x46C360
[LoadConfig] UnknownZero1 0x8000011
[File Heuristics] -> Flag #1 : 00000000000000001100001000100011 (0x0000C223)
[Entrypoint Section Entropy] : 7.99 (section #5) "8rca826h" | Size : 0x66B28 (420648) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 7 (0x7) | ImageSize 0x11F000 (1175552) byte(s)
[ModuleReport] [IAT] Modules -> kernel32.dll | user32.dll
[!] EXE Cryptor v2.2.0 - v2.2.6 detected !
- Scan Took : 0.219 Second(s) [0000000DBh (219) tick(s)] [246 of 580 scan(s) done]
6  Programación / Ingeniería Inversa / ¿Cómo puedo crear un FAKE OEP? en: 29 Enero 2018, 20:06 pm
La pregunta es como puedo crear un fake oep, en si puedo redireccionar el oep a varias partes pero es en vano, también puedo crear un oep y ponerlo con un call que se repare y evitar ida etc.

¿Hay algun tutorial que enseñe a dividir el PE Header, para empaquetar etc?.



El UPX esta dividido en 8.000 partes y no da para revisarlo.
7  Foros Generales / Dudas Generales / Pregunta sobre un tema legal. en: 9 Noviembre 2017, 22:23 pm
¿Es ilegal utilizar "VMProtectSDK32/64.dll"?

Su descarga en internet es gratis, tengo su .h y .lib para utilizarlo, el tema es que no se si es ilegal si lo consegui de internet. (de unknowncheats -> HWID Spoofer by BloodSharp tiene un el file para driver y para dll)

Osea en caso de que lo utilizara para un anti-cheat, ¿Cual seria la mayor consecuencia?, Igual el AC es gratis. (sin fines de lucro)

8  Programación / Ingeniería Inversa / Packers para linux en: 9 Noviembre 2017, 01:13 am
¿Cuales son los mejores packers para linux?, Yo se que andaba por ahi VMProtect pero mec anda muy carito.

(Que empaquete .so :p)
9  Programación / Programación C/C++ / ¿Cómo hago para crear una funcion que al usarla cree otra?. en: 3 Noviembre 2017, 17:41 pm
Como hago tipo, pongo en .h esto:

Código:
int Function( int a )
{
         return a+5;
}

y Cada vez que lo utilize en un .cpp o en cualquier lado se cree una funcion con eso.

PERO NO INSERTARLO CORTE INLINE, sino que como que copia la funcion y la clona SÓLO PARA ESE USO EJEMPLO:

Código:
int roberto( int hola, int param )
{
          int a, b, c, d (?
          Function( 4 );
         blabla...
          Function( a + 10 );
}

y para cada vez que uso Function se clona sólo para ese uso en este caso se clona 2 veces.

Habia un XorStr de 007 Boy Scout que hacia eso con xorstr.
10  Programación / Programación C/C++ / ¿Cómo obtengo el RetAddress de una función que está con detour? en: 17 Agosto 2017, 04:01 am
¿Cómo obtengo el RetAddress de una función que está con detour?, ejemplo:

CreateFileA retorna el valor de el address de la función la cual lo llamo, ¿Cómo hago para obtener TODOS los ret que manda?.

EDIT: Seria como el ESI (?
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines