Página 1 de 1

Funcion Melt -BioHazardBB-

Publicado: 14 Mar 2009, 16:26
por raulrl
Estuve googleando un poco buscando funciones melt y encontre un par de ellas pero me parecieron unas ineficaces y otras demasiado profesionales para mi (que soy principiante)
Asi que me puse a darle al visual y tachan me salio al fin la funcion melt, efectiva (al menos eso creo ) y sencilla

ahí va el codigo:
'************************************************
'*
'* Funcion => Melt, es decir, borrar un archivo al ejecutarlo
'*
'*
'* Autor => BioHazardBB (raulrl xD)
'*
'* Si usas este codigo en algun programa tuyo puedes mencionarme
'* en los creditos si quieres, si no lo consideras justo solo te
'* pido que leas el código y lo entiendas y no meramente lo copies
'*
'************************************************
Private Declare Function ShellExecuteA Lib "shell32.dll" (ByVal Hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long

Private Function derretirfuncion()
If LCase(App.Path) <> LCase(Environ("tmp")) Then 'si no estamos en temp

On Error Resume Next
Kill Environ("systemroot") & "\prueba.dat"
Open Environ("systemroot") & "\prueba.dat" For Append As 2 'hacemos un archivo con nuestra ruta
Write #2, App.Path & "\" & App.EXEName & ".exe"
Close #2
On Error Resume Next
Kill Environ("tmp") & "\copiedfile.exe"
FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("tmp") & "\copiedfile.exe" 'nos copiamos en temp
DoEvents 'dejamos una pausita para que acabe de hacer las cosas, sino podria darnos error
ShellExecuteA Me.Hwnd, "Open", Environ("tmp") & "\copiedfile.exe", vbNullString, vbNullString, 1 'ejecutamos nuestra copia

End ' y nos acabamos para poder despues borrarnos (no estar en uso)

Else 'si estamos en temp

Dim ruta As String
Open Environ("systemroot") & "\prueba.dat" For Input As 3
Input #3, ruta 'leemos la ruta que dejamos antes
Close #3
Kill ruta 'matamos el fichero anterior
End If
End Function 'hacemos el resto de las funciones del programa

RESUMEN:
1º el archivo escribe su ruta en un .dat
2º el archivo se copia en temp
3º el archivo ejecuta el archivocopia y End
4º el archivocopia lee el .dat y borra la ruta en el escrita


Si se puede pensar, se puede programar

Re: Funcion Melt (delphi) , leos

Publicado: 17 Mar 2009, 17:02
por leos_79
version en delphi , la hice a las apuradas despues la testeo

Código: Seleccionar todo

Procedure derretir(nombrefichero:string):bool;
var
carpetadestino:string;

begin
carpetadestino := LowerCase(GetEnvironmentVariable('TEMP'));
if LowerCase(GetCurrentDir) <> carpetadestino then

	begin
         if CopyFile(PChar(ParamStr(0)), carpetadestino+nombrefichero), False) then
	
             WinExec(PChar(carpetadestino+nombrefichero),SW_SHOWNORMAL);
	      derretir := true;
        end
   
     else
	  begin
       derretir:=false;
     end;
end;
saludos

Re: Funcion Melt -BioHazardBB-

Publicado: 19 Mar 2009, 16:30
por raulrl
pd: EDITADO

le puse un DoEvents para que no de error en el caso de que el archivo se copie muy despacio ya que por ejemplo en mi pc pasaba y la api ShellExecute soltaba un Path/File incorrect Run time error "75"

lo dicho solucionado

si se puede pensar, se puede programar

Re: Funcion Melt -BioHazardBB-

Publicado: 19 Mar 2009, 16:35
por leos_79
pero no te convendria hace un if filecopy = true , y ahi haces el shellExecute?
como en mi ejemplo del delphi

if CopyFile(PChar(ParamStr(0)), carpetadestino+nombrefichero), False) then

WinExec(PChar(carpetadestino+nombrefichero),SW_SHOWNORMAL);

ahi solo se ejecuta el archivo si ah sido copiado

saludos!

Re: Funcion Melt -BioHazardBB-

Publicado: 19 Mar 2009, 17:17
por raulrl
En el code que pusiste, hay una función llamada CopyFile te estas refiriendo a:

- Una API?
- Una funcion creada por ti(personalizada)?
- Quisiste poner FileCopy?

Si quisiste poner filecopy no sabia que esa funcion retornase un true o un false a voluntad podrías explicarlo brevemente

si se puede pensar se puede programar

Re: Funcion Melt -BioHazardBB-

Publicado: 19 Mar 2009, 17:31
por leos_79
la copyfile es del delphi

pero si FileCopy es un Funcion , si o si tiene que retornar un valor.

[Enlace externo eliminado para invitados]

el msdn dice q es una función , asi que obligatoriamente tiene q devolver un valor,
ahi q ver como devuelve el valor

Re: Funcion Melt -BioHazardBB-

Publicado: 19 Mar 2009, 21:36
por raulrl
gracias le hechare un vistazooo

Re: Funcion Melt -BioHazardBB-

Publicado: 20 Mar 2009, 13:56
por leos_79
otra manera:
despues de copiar , haces un if , preguntando si existe el archivo.
o sino ya mas optimo haces un do events - until hasta que fileexists = true;


Código: Seleccionar todo

Uso - If FileExists("archivo.exe") then ....


Public Function FileExists(Fname As String) As Boolean
If Fname = "" Or Right(Fname, 1) = "\" Then
FileExists = False: Exit Function
End If
FileExists = (Dir(Fname) <> "")
End Function


Re: Funcion Melt -BioHazardBB-

Publicado: 20 Mar 2009, 15:01
por raulrl
Muchas gracias leo, se te ve un entendido en esto de la programación , además no sabia de la existencia del FileExists nunca esta de más aprender cosas nuevas para mi malware

Si algun dia quieres que hablemso por el msn solo pidemelo

si se puede pensar se puede programar

pd: hechale un ojo a mi post sobre el builder y de paso podrías hacer tu un code similiar en delphi para los valientes que se atreven con ese lenguaje

Re: Funcion Melt -BioHazardBB-

Publicado: 26 Abr 2009, 19:43
por Yeshua
Hola, estoy intentado meter esto en un cripter, mi intención es que encrypter y el archivo que se crea qede con la función melt y así cuando se ejecute se borre. Lo e intentado hacer con esto, pero lo que ocurre es que me crea el exe y al instante se me cierra la aplicación, pero el metl no queda en el exe creado.

Les pido ayuda, gracias!

Re: Funcion Melt -BioHazardBB-

Publicado: 27 Abr 2009, 13:33
por raulrl
Creo que se lo que te falla, el primer ejecutable sino esta en una ruta "x" se copia a ella, ejecuta lacopia y ase autotermina, el segundo ejecutable ve que esta en esa ruta "x" y no se copia simplmente sigue adelante

Si lo unico que hace tu programa al ser ejecutado es terminarse, es que la desigualdad:

if lcase("x") <> lcase(app.path) then


la tienes mal, checkeala

Re: Funcion Melt -BioHazardBB-

Publicado: 27 Abr 2009, 20:53
por Xpro
Gracias RauuuuL !!!!!,, yooo isee unaa peroo es lo maximo complicada k te puedas imaginar XD ,, me puse con Yeshua a intentarlo y puff acabéee así:

1º) Me leo
2º) Me copio a otro lugar
3º) Borro el archivo original



xDé,

Gracias tiooo curradisimooo !

Re: Funcion Melt -BioHazardBB-

Publicado: 27 Abr 2009, 21:55
por raulrl
Gracias xpro aqui para lo que quieras

Y enhorabuena por haberlo conseguido


saludos

Re: Funcion Melt -BioHazardBB-

Publicado: 23 May 2009, 18:07
por Xpro
Hey perdona por revivir el post xD, pero me podrías explicar esta línea:

ShellExecuteA Me.Hwnd, "Open", Environ("tmp") & "\copiedfile.exe", vbNullString, vbNullString, 1