Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ByJørGe en 2 Febrero 2017, 16:16 pm



Título: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 16:16 pm
Buenas que tal con todos, estoy pasando mi codigo delphi, para C++ builder y hasta ahora he logrado esto :  
MOSTRARE PRIMERO EL CODIGO DELPHI .-

Código:
procedure Tester();
var
ADD1:procedure;
ADD2:procedure;
begin
ADD1 := GetProcAddress(GetModuleHandleA(PAnsiChar('Verin.dll')), PAnsiChar('FUNCION1'));
ADD2 := GetProcAddress(GetModuleHandleA(PAnsiChar('VerinAllign3.dll')), PAnsiChar('FUNCION2'));
while(true) do begin
    Sleep(40);

         if (GetAsyncKeyState(VK_F1) <> 0) then begin;

        asm
        call ADD1
        mov ecx, eax
        mov edi, eax
        call pADD2
      end;
    end;
  end;
 end;


ACA MOSTRARE EL CODIGO QUE HE LOGRADO HACER EN C++ BUILDER  :P :
Código:
void __fastcall Tester()
{
PAnsiChar ADD1 = (PAnsiChar)GetProcAddress(GetModuleHandleA("Verin.dll"), "FUNCION1");
PAnsiChar ADD2 = (PAnsiChar)GetProcAddress(GetModuleHandleA("VerinAllign3.dll"), "FUNCION2");
while(true)
Sleep(40);
 if (GetAsyncKeyState(VK_F1) != 0)
 _asm
 {
call ADD1
mov ecx, eax
mov edi, eax
call ADD2
 }
 }


Espero que me puedan ayudar, muchas gracias ! Saludos  :rolleyes:


Título: Re: (AYUDA)PASANDO CODIGO DELPHI PARA C++ ..
Publicado por: ivancea96 en 2 Febrero 2017, 16:30 pm
No pongas títulos en mayúsculas.


¿Cuál es tu problema al pasarlo?


Título: Re: (AYUDA)PASANDO CODIGO DELPHI PARA C++ ..
Publicado por: ByJørGe en 2 Febrero 2017, 16:37 pm
okey, tomare en cuenta sobre el titulo.
Bueno al parecer el codigo que he pasado , si compila, pero no funciona..
quisiera algun ejemplo para poder continuar :s ,  soy nuevo en c++ .
Quisiera declarar estas variables de delphi para C++ Builder :
var
ADD1:procedure;
ADD2:procedure;


Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 17:25 pm
¿Qué es PAnsiChar en el código C++?

GetProcAddress retorna un puntero a función.

Los punteros a función se declaran en C/C++ así:
Código:
tipo_retorno(*nombre_variable)(parámetros);
Código
  1. void(*func)(int, char) = (void(*)(int, char)) GetProcAddress(...);

Aunque se suele poner el tipo en un using o un typedef:

Código
  1. using Funcion = void(*)(int, char);
  2. typedef void(*Funcion2)(int, char);
  3.  
  4. Funcion f = (Funcion) GetProcAddress(...);
  5. Funcion2 f2 = (Funcion2) GetProcAddress(...);


Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 17:53 pm
Error :$

(https://scontent.flim5-1.fna.fbcdn.net/v/t31.0-8/16300099_249446098833991_3328911925104646733_o.jpg?oh=8fb5625207f4cab03ba1a1ab062380d9&oe=5915903B)


Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 17:57 pm
¿Y los mensajes de error?

En cualquier caso, esas que te puse son 2 alternativas, no las uses ambas. O usas la una o la otra (para no mezclar).

"using" existe desde el estándar de C++11. No sé qué compilador, así que prueba con typedef solo.

De todos modos, sin mensajes de error, poco más puedo hacer.


EDITO: Olvida lo que dije (o no, segun los errores).

ADD1 y ADD2 ahora son tipos, no variables. Fíjate exactamente en cómo lo puse yo en mi ejemplo.

EDITO2: Y, nuevamente, pregunto. Qué es PAnsiChar.


Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 18:07 pm
ACA ESTA LA IMAGEN DEL ERROR...
(https://scontent.flim5-1.fna.fbcdn.net/v/t1.0-9/16298990_670777169770614_2079519784262379679_n.jpg?oh=8211ef0a09c83b59addedd04970fec86&oe=590EDD7F)


Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 19:24 pm
Si ADD2 ahora es un tipo, entonces:
Código
  1. ADD2 func = (ADD2) GetProcAddress(...)

Lo d ela doble declaración, pues es que no puedes declarar 2 variables o tipos con el mismo nombre.