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ú

Temas - josue9243

#1
¿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
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
Ingeniería Inversa / VMProtect pregunta deteccion
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
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
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 ->
CitarScanning -> 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
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
Dudas Generales / Pregunta sobre un tema legal.
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
Ingeniería Inversa / Packers para linux
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
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.
#10
¿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 (?
#11
Programación C/C++ / Unsigned char con address
12 Agosto 2017, 04:06 AM
Hola denuevo, queria saber como modificar un ADDRESS con unsigned char tipo:

*(unsigned char*)0x..... = 0x55;

el tema es que funciona asi PERO sólo puedo editar 1 byte, ¿Cómo hago para editar más de un byte?, intenté con = {0x55, 0x65} pero no funciono porque tiraba error.

intenté con *(unsigned char*)(0x.......+1) = 0x55; y sumandole pero tampoco andaba.
#12
Hola primeramente, últimamente intenté hookear o hacer un detour a LdrpLoadDll, logré hacerlo a LdrLoadDll pero bueno, a la otra función cuando intentaba CRASH, LdrpLoadDll se puede localizar en LdrLoadDll unas lineas abajo lo llama, su push no es "push 55", es un "push 140".

¿Alguna idea?, o simplemente alguna idea de como filtrar inyecciones en esa función?.

IMPORTANTE: la función LdrpLoadDll no está exportada, simplemente es una función.

Tenkiu

EDIT: Si necesitan un Hex-Rays de IDA Pro o alguna foto desde el Depurador para que vean la función, lo publico.

EDIT2: Esto no lo puse en ingenieria inversa PORQUE simplemente contiene C++, pero si va en ingenieria inversa sólo me dicen y lo paso. (o algun mod amable me lo podria pasar  ;))
#13
Termina de desempaquetar, termina el script todo, sale todo bien, y al abrir el .exe crashea, o al cargar una dll también crashea.

El tema es que me pasa con el script de ASProtect y el de Ultra unpacker Themida 1.4.

Pero cuando lo hago con un programa ejemplo que encontre en Youtube funciona bien.

Es por el IAT o el OEP o algo parecido?, si podrian decirme pls.
#14
Hola, como vieron el título, me gustaria saber si alguien de por aca tiene experiencia en ingenieria inversa y me podria ordenar de menor a mayor dificultad los packers.

Asi empiezo con ingenieria inversa unpackeando de menor a mayor y es más fácil y por cada suma más experiencia.  ::)  :D

(Otra cosa, ¿Porqué no puedo entrar a Crackmes?, ¿Soy el único?, me salta esto "Due to new law restrictions in EC we need to check various aspects of the website and need to change some parts. Back once we did any necessary changes.")
#15
¿Cómo se pasa este código a AT&T?.

(para VC++ 2010)

Citarasm(".text\n"
        ".globl _pOrig_glClear@4;\n"
        "_pOrig_glClear@4:\n"
        "movl _dwFarSegment,%eax;\n"
        "movl %fs:0x18,%edx;\n"
        "addl (%eax),%edx;\n"
        "movl (%edx),%edx;\n"
        "jmpl *0x32C(%edx);");

--->

Lo que me interesa es esta linea y esta otra.

->  "jmpl *0x32C(%edx);");

este nombre _dw quiero saber si es algo que se define sólo o no sé.
-> "movl _dwFarSegment,%eax;\n"

-------

¿Esto queda asi?

-> "addl (%eax),%edx;\n"

--> "ADD EDX, [EAX]
#16
Ingeniería Inversa / Pregunta sobre IDA PRO
4 Febrero 2017, 05:02 AM
Hola, me gustaria que me respondan una pequeña duda que tengo de IDA Pro.

Tengo el código Pseudocode, IDA Pro 6.6, y queria saber como obtener el valor de un dword, ejemplo.

v0 = dword_101170B4;

#17
Como dice el título, ¿Cómo hago para hacer que se ejecute el programa cuando inicia el windows?

Busque y no encontre, tengo el programa Visual Basic 2010.

¿Cómo hago que se copie a Start Menu?, ¿o como hago que desde un registro se inicie el programa?

Otra cosa, como hago para desde VB 2010 ejecutar comandos de cmd?

Desde ya, GRACIAS

EDIT: ¿Cómo borro algo?, eso también queria saber :p
#18
El iPhone lo tengo hace como 1 año, lo encontre en un aero puerto cuando volvia, cuando volvi a Argentina desde mexico me llamo el titular y me dijo que se lo devuelva, pero como si estaba yo ya en argentina, tiene un año de antiguedad esta 100% bloqueado, osea que no tiene codigo de desbloqueo etc, queria saber si hay algun bypass, o simplemente lo dejo colgado como recuerdo en la pared al iphone.

Tengo el cable usb para conectarlo a la pc.

Otra cosa, el celular no es robado, si no que me lo encontre estando en el baño, se ve que el titular se lo olvido ahi, y como vi que no habia nadie lo agarre.

Foto exacta del celular: https://regmedia.co.uk/2013/09/20/5s_hero.jpg
#19
Hola, estaba intentando crackear un programa, se que es inutil que lo haga, pero queria ver por encima como era, la cosa es que cuando le hago un attach o lo trato de correr en ollydbg se cierra el programa, la cuestion, ¿como hago para que el programa no se cierre o.O?.

Si me podrian decir algunos ejemplos de protecciones basicas o avanzadas asi averiguo estaria agradecido. (No estoy pidiendo que me crackeen nada sino pidiendo ayuda)
#20
¿Alguien tiene por ahi todos los CrackMe en algun link?, los que estan en la pagina no funciona ninguno, la verdad me interesa esos retos.

PD: Soy nuevo, si esto no va aca digan.