Ver Mensaje Individual
  #10  
Antiguo 25-08-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 20
cHackAll Va por buen camino
Que lindo tema!!! por que será que llego tarde? bueno ya se había visto el asunto y la idea del antivirus es simple, recorrer todo el ejecutable y al encontrarce algo "reconocible" pues BEEP, la segunda es hacer lo mismo cuando el proceso está corriendo en memoria, lo que viabiliza verificar el contenido real y no que contenido que nos dejó el packer (Ej. UPX). y bueno, tambien se pueden revisar distintos puntos de un eXecutable, y este es uno de los principales problemas, los que realizan virus buscan la forma de realizar pequeños eXecutables que se puedan "mover" rapidamente.

Tambien hay el asunto que que comentaba seoane, si haces algo extraño pues BEEP, pero depende mucho del Antivirus.

Al grano con el hilo, en lo personal utilizo yo utilizo el PECompact2, UPX y en muy caso especial el mew11. Los dos ultimos me dieron en varias ocaciones un "BEEP", pero nunca les doy bola... lo que si hago es cambiar algunas partes del código para ver cual API o conjuncion de APIs o movimientos en memoria ya esta en la lista "negra".

Como consejo a Yusk333, parece que quieres que no se puedan ver las cadenas y constantes de tu ejecutable (por que si te refieres como tu dices para "...proteger el SOURCE de un programa...", me suena como el código fuente, y para eso un ZIP con clave basta y sobra). Bueno simplemente cambia todas las cadenas que no quieres que se vean por otros datos "semi encriptados en tu mismo ejecutable", por ejemplo:

Código Delphi [-]
uses Windows;
 
var
 Count: Cardinal;
 Mensaje: array [0..63] of Char = #$B7#$91#$91#$9D#$DB#$97#$90#$8B#$D7#$94#$80#$91#$9D#$9D#$82#$D0#$8E#$83#$84#$8B#$84#$99#$C9#$8C#$82  #$8A#$C5#$A7#$8F#$97#$83#$A4#$BA#$B2#$AD#$B4#$B2#$FB#$F8#$F9;
 
begin
 Count := lstrlen(@Mensaje);
 while Count <> 0 do
  begin
   Dec(Count);
   Mensaje[Count] := Char(Ord(Mensaje[Count]) xor ($FF xor (Count and $FF)));
  end;
 MessageBox(0, @Mensaje, nil, 0);
end.

en contraparte de un

Código Delphi [-]
uses Windows;
begin
 MessageBox(0, 'Hola mis buenos amigos del ClubDelphi!!!', nil, 0);
end.

Revisando el contenido de los ejecutables generados veras la diferencia.

Claro que es un simple algoritmo que funciona desde "ambos" lados, pero de todas formas la idea que dejo es lo que importa. Para crear el ejecutable necesitas un programa externo posiblemente hecho por ti que encripte, y un algoritmo de desencriptado an la carga del proyecto.

Saludos
Responder Con Cita