|
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) 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: 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 -> <<Multiple Protections>> ====================== EXECryptor Deteccion Heuristica EXECryptor (Compress Code & Data) EXECryptor v2.1.15 EXECryptor v2.2.x - v2.4.x
PROTECTiON iD -> 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)
|
|
|
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: 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: 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.
|
|
|
|
|
|
|