Buenas amigos, estoy con un programita hecho con Delphi XE7 de 64 bits y todo sería más sencillo con un decompilador de Delphi que soporte esa versión. He probado idr y solo soporta 32 bits. ¿Saben de alguno que me pueda ayudar?
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úvoid __stdcall _OutputDebugStringW(LPCWSTR lpOutputString)
{
char outputDebugStringBuffer[1000] = {0};
WideCharToMultiByte(CP_ACP, 0, lpOutputString, -1, outputDebugStringBuffer, sizeof(outputDebugStringBuffer), 0, 0);
ULONG_PTR args[4];
//unicode
args[0] = (ULONG_PTR)wcslen(lpOutputString) + 1;
args[1] = (ULONG_PTR)lpOutputString;
//ansi for compatibility
args[2] = (ULONG_PTR)wcslen(lpOutputString) + 1;
args[3] = (ULONG_PTR)outputDebugStringBuffer;
__try
{
RaiseException(0x4001000A, 0, 4, args);//DBG_PRINTEXCEPTION_WIDE_C
ShowMessageBox("DBG_PRINTEXCEPTION_WIDE_C -> Debugger detected");
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
ShowMessageBox("DBG_PRINTEXCEPTION_WIDE_C -> Debugger NOT detected");
}
}
$MetadataToken = 0x0600002f
$path = 'C:\...\file.DumpedMethods-cleaned.exe'
$asm = [System.Reflection.Assembly]::LoadFrom($path)
$module = $asm.GetModules()[0]
$decryptionMethod = $module.ResolveMethod($MetadataToken)
$result = $decryptionMethod.Invoke($null,80)
Write-Host $result
Excepción al llamar a "LoadFrom" con los argumentos "1": "No se puede cargar el archivo o ensamblado 'file:///C:\...file.DumpedMethods-cleaned.exe' ni una de sus dependencias. Se esperaba que el módulo tuviera un manifiesto de ensamblado."
En línea: 3 Carácter: 46
+ $asm = [System.Reflection.Assembly]::LoadFrom <<<< ($path)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
No se puede llamar a un método en una expresión con valor NULL.
En línea: 4 Carácter: 26
+ $module = $asm.GetModules <<<< ()[0]
+ CategoryInfo : InvalidOperation: (GetModules:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
No se puede llamar a un método en una expresión con valor NULL.
En línea: 5 Carácter: 42
+ $decryptionMethod = $module.ResolveMethod <<<< ($MetadataToken)
+ CategoryInfo : InvalidOperation: (ResolveMethod:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
No se puede llamar a un método en una expresión con valor NULL.
En línea: 6 Carácter: 35
+ $result = $decryptionMethod.Invoke <<<< ($null,80)
+ CategoryInfo : InvalidOperation: (Invoke:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
DWORD *dir = (DWORD*)AddFlow1; //0x47FF20
Funcion(dir);//Ejecutamos la funcion de la dll
void HideIsDebuggerPresent(bool hide) {
unsigned char being_debugged = (hide ? 0 : 1);
__asm {
MOV EAX, FS:[0x18]
MOV EAX, [EAX + 0x30]
MOV CL, being_debugged
MOV BYTE PTR [EAX + 2], CL
}
}
CurrentExceptionThread = DebugEv.u.CreateProcessInfo.hThread;
con.ContextFlags= CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS;
GetThreadContext(CurrentExceptionThread, &con);
HideIsDebuggerPresent(false);
int centroAncho = Image2->Left / 2 + Image2->Width / 2; //Centro del ancho de la imagen
int centroAlto = Image2->Top / 2 + Image2->Height / 2; //Centro del alto de la imagen
int centroScrollAncho = ScrollBox2->Width / 2; //Centro del ancho del ScrollBox
int centroScrollAlto = ScrollBox2->Height / 2; //Centro del alto del scrollbox
Image2->Left = (centroScrollAncho - Image2->Width / 2) * 2;
Image2->Top = (centroScrollAlto - Image2->Height / 2) * 2;