[SOLUCIONADO] Autocopiarse y matar su proceso - enviar datos por winsock

Iniciado por ŞCØRPIØN-X3, 13 Abril 2011, 22:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

ŞCØRPIØN-X3

Wenas yo de nuevo xD, tengo 2 problemas, necesito hacer lo siguiente, al abrir el archivo que se copie a la carpeta c:\ y que se ejecute y mate su propio proceso, osea que al abrir el archivo se copie a c:\ y se ejecute, y el original deje de ejecutarse es como "pasarle la ejecución a la copia" xD asi de este modo se puede borrar el archivo original sin que tener que cerrar el programa. El segundo problema es sobre el winsock, como ago para pasar información sin limites?? osea si tengo un texto muy largo que igual se mande, actualmente me limita la cantidad de bytes a enviar. Pense en hacerlo cortando el texto a enviar utilizando el comando split e ir mandandolo parte por parte pero nose bien como hacerlo.
En este ultimo lo que tengo que hacer es enviar la informacion de un archivo de texto (que no tiene limites de longitud) atraves de winsock y el otro programa los debe mostrar en un textbox. Muchas gracias por todo espero que me puedan ayudar  :D :D

CAR3S?

#1
eso de copiarse es muy basico, busca en google

lo de los procesos tambien, pero bueno

aca te dejo el codigo para matar procesos

Código (vb) [Seleccionar]
Public Sub KillProcess(ByVal processName As String)
On Error GoTo ErrHandler
   Dim oWMI
   Dim ret
   Dim sService
   Dim oWMIServices
   Dim oWMIService
   Dim oServices
   Dim oService
   Dim servicename

   Set oWMI = GetObject("winmgmts:")
   Set oServices = oWMI.InstancesOf("win32_process")

   For Each oService In oServices
       servicename = _
           LCase(Trim(CStr(oService.Name) & ""))

       If InStr(1, servicename, _
           LCase(processName), vbTextCompare) > 0 Then
           ret = oService.Terminate
       End If
   Next

   Set oServices = Nothing
   Set oWMI = Nothing
   Exit Sub
ErrHandler:
   Err.Clear
End Sub


Uso

Código (vb) [Seleccionar]
KillProcess ("proceso.exe")

lo 'teorico' seria

abrir el exe
copiarse en c:\copia.exe
hacer un Unload Me
abrir c:\copia.exe
(En ese orden, es muy facil)
Fin.

skapunky

Ese codigo para cerrar procesos está mas detectado que osama binladen paseando por central park. No tengo ni quiero aportar a este tema, pero quería avisar al usuario que pregunta sus dudas para no hacerle perder el tiempo.

Killtrojan Syslog v1.44: ENTRAR

ŞCØRPIØN-X3

men si se hacer eso xD y tiene razon ese code es muy detectado pero igual es facil hacerlo indetectable, lo que yo quiero hacer es que se copie y mate su propio proceso y ejecute la copia, pero el problema es el siguiente, si el programa se elimina a si mismo, cuando yo lo copie y lo quiera ejecutar se va eliminar siempre a si mismo xD, lo que yo pensaba hacer es abriendo el archivo en binario y agregarle los datos para auto borrarse y que no se copie sino que se extraiga la parte del programa sin la de matar el proceso, da no se como explicarle para que lo entiendan mejor se los digo facil igual como funciona un joiner, un joiner es facil de hacer pero queria saber si habia algo mas basico o simple, para no dar tantas vueltas :P eso es todo xD lo que quiero que me digan es si me conviene hacerlo como funciona un joiner o existe una manera mas simple :P eso es todo muchas gracias por su tiempo :D

Novlucker

Entonces la manera fácil, si esta en el path donde lo quieres entonces que no se copie :xD

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

79137913

HOLA!!!

No le veo sentido a que se copie a no ser que sepas por que path del disco esta analizando y te moves al ultimo path analizado... Pero primero, no se como saber por que path va el Av segundo tenes el Av en tiempo real que te hace un sandbox a todos los archivos movidos y te lo detectara a la larga.

A mi parecer es preferible que lo dejes quieto bien cifrado por que asi no va  a ser analizado tantas veces por el av...

Supongo que luego de x analisis lo debe tomar como sospechoso, lo va a enviar a la compania y chau crypter y chau tu virus.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

saratoga2k

Busca en este link http://cobein.com/wp/?p=207 el codigo para autoeliminarse

para copiarse es facil

comunmente a este procedimiento se lo llama MELT


Edu

Ese ejemplo no anda bien del todo, porq no se ejecuta.

Lo otro q podes hacer es hacer lo q dijo Novlucker:

Cita de: Novlucker en 14 Abril 2011, 04:52 AM
Entonces la manera fácil, si esta en el path donde lo quieres entonces que no se copie :xD

Yo lo hacia de una forma que no me acuerdo pero era algo creando un bat para que me autoelimine, pero ahora q lo pienso haciendo lo q dijo novlucker andaria bien, vs pensala como

jaunx

Cita de: nuKje en 13 Abril 2011, 23:24 PM
lo 'teorico' seria

abrir el exe
copiarse en c:\copia.exe
hacer un Unload Me
abrir c:\copia.exe
(En ese orden, es muy facil)

No es tan fácil  :-* ... por que cómo se supone que abres c:\copia.exe una vez hecho Unload Me (supongo que te referías a End)  ;D

saratoga2k

Las funciones GetTempDir y CreateTempFilename, es para que no haya conflico al crearlo al .BAT

El parametro ExePath ya lo dice el nombre, donde esta ubicado el ejecutable a eliminar
y ExeName, el nombre del archivo con la extension.

El .Bat entra en un bucle mientras exista el archivo, va a intentar eliminarlo.

[Codigo]

Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long


Function GetTempDir() As String
 Dim strTemp As String
 strTemp = Space$(256)
 GetTempPath 256, strTemp
 strTemp = sacaNull(strTemp)
 If Mid(strTemp, Len(strTemp)) = "\" Then strTemp = Mid(strTemp, 1, Len(strTemp) - 1)
 GetTempDir = strTemp
End Function

Private Function CreateTempFilename() As String
  Dim result As Long
  Dim buff As String
  buff = Space$(256)
  result = GetTempFileName(TmpDir, "tmp", 0, buff)
  CreateTempFilename = sacaNull(buff)
End Function

Public Sub DeleteSelf(ExePath As String, ExeName As String)
 Dim arc As String
 Dim TmpDir As String
 TmpDir = GetTempDir & "\"
 arc = CreateTempFilename
 arc = Mid(arc, InStrRev(arc, "\") + 1)
 arc = Mid(arc, 1, InStrRev(arc, ".") - 1)
 Open TmpDir & arc & ".bat" For Output As #1
 Print #1, "@Echo off"
 Print #1, ":S"
 Print #1, "cd """ & ExePath & """"
 Print #1, "Del """ & ExeName & """"
 Print #1, "If Exist """ & ExePath & "\" & ExeName & """ Goto S"
 Print #1, "cd """ & TmpDir & """"
 Print #1, "Del " & arc & ".bat"
 Close #1  
 Shell TmpDir & arc & ".bat", vbHide
End Sub