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
eso de copiarse es muy basico, busca en google
lo de los procesos tambien, pero bueno
aca te dejo el codigo para matar procesos
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
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.
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.
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
Entonces la manera fácil, si esta en el path donde lo quieres entonces que no se copie :xD
Saludos
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!!!
Busca en este link http://cobein.com/wp/?p=207 (http://cobein.com/wp/?p=207) el codigo para autoeliminarse
para copiarse es facil
comunmente a este procedimiento se lo llama MELT
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
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
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
Cita de: jaunx en 14 Abril 2011, 17:44 PM
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
Yo lo hice varias veces y me anda :_
Si, unload me ;D
Cita de: saratoga2k en 14 Abril 2011, 14:36 PM
Busca en este link http://cobein.com/wp/?p=207 (http://cobein.com/wp/?p=207) el codigo para autoeliminarse
para copiarse es facil
comunmente a este procedimiento se lo llama MELT
no, el metodo MELT es para que se elimine una vez ejecutado a si mismo y eso no es exactamente lo que necesito, lo que yo necesito es que se copie a la carpeta c:\ una ves en esa carpeta se ejecute. La idea es que cuando yo entre al administrador de tareas el proceso que se encuentre ejecutado sea el del que esta en la carpeta c:\ y no el que tengo en porejemplo el escritorio.
Cita de: 79137913 en 14 Abril 2011, 13:55 PM
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!!!
gracias por responder :D, es que lo que necesito no es que no lo detecte el antivirus, eso es facil :P, lo que necesito es que se copie a c:\ se ejecute y mate su propio poceso
filecopy ejecutable1.exe, c:\ejecutable1.exe
DeleteSelf pathexeorigen, ejecutable1.exe
shell "c:\ejecutable1.exe"
end
Mensaje editado para mi novio raul!!! (Pero no sabe que es mi novio) ♥
-----------------------------------------------------------------------------------
Cosas:
1 Boton
2 Labels
-----------------------------------------------------------------------------------
Codigo:
'codigo by nukje - ahre loco
Private Sub Command1_Click()
On Error Resume Next
MsgBox "Me copio a c:\copia.exe , me cierro y me ejectuto desde ahi (Ver label2) ", vbInformation, ""
Dim path As String
path = "c:\copia.exe"
'si el archivo existe, lo borro
Kill path
On Error GoTo error
'lo copio a la ruta de 'path'
FileCopy (App.path & "\" & App.EXEName & ".exe"), path
'me 'cierro'
Unload Me
'me abro desde 'path'
Shell path, vbNormalFocus
Exit Sub
'error
error:
MsgBox "Error al copiar"
End Sub
Private Sub Form_Load()
'muestro la ruta de el exe
'en c:\ muestra 2 \ (\\) , ._.
label1.caption = "Ruta de ejecucion:"
Label2.Caption = (App.path & "\" & App.EXEName & ".exe")
End Sub
-----------------------------------------------------------------------------
Descarga:
http://www.sendspace.com/file/h10zbq
Porque no nos dices que quieres hacer talvez te ayudan dandote opiniones tambien..
Esque dices que sabes hacerlo indetectable pero no sabes hacer esto entonces WTF xD
Option Explicit
Private Sub Form_Load()
Dim sPath As String
Dim sFile As String
sPath = App.path & "\" & App.EXEName & ".exe"
sFile = "C:\Copia.exe"
If Dir$(sFile) = vbNullString Then
FileCopy sPath, sFile
Shell sFile, vbHide
End
End If
End Sub
Esque esto que te hice sirve para hacerlo uno vez, es decir si ejecutas el .exe, copiara a C:\Copia.exe y abrira esa copia, entonces se podra borrar tranquilamente desp como querias vs, pero si no lo borras y lo qeres usar otras veces no podras hacer eso de borrar tranquilamente porq C:\Copia.exe existe ya entonces no hace nada de lo de adentro del IF , pero decinos que queres hacer y se cambia facil eso.
gracias por responder, esa parte ya la tenia resuelta, lo que hice fue comprobar si existe la carpeta y/o el archivo, si no existen los crea. pero ahora como ago para que cierre el proceso del original y ejecute la copia, pense en hacer lo mismo, comprobar si existe el archivo en c:\, si no existe se copia, se ejecuta y se mata el proceso, para que cuando lo ejecute nuevamente no se me cierre el proceso cada ves que se abra. Ahora trato de hacerlo, lo que pasa es que lo se hacer pero lo que queria saber si habia alguna manera para no escribir tanto code y lograr resumir lo mas posible el code porque sino se hace muy largo xD. Muchas gracias a todos por su ayuda, enseguida les cuento si lo puede hacer :P
HOLA!!!
Aca te arme una manera facil de hacer lo que queres ;).
Seguramente va a recibir criticas pero fue XD.
Private Sub Form_Load()
If Dir("C:\" & App.EXEName & ".EXE") = "" Then
Call CopyMeToC 'ARMATE VOS TU PROPIO SELFCOPY
Open "C:\Secure.vbs" For Output As #1
Print #1, "set cmd = createobject(""wscript.shell"")"
Print #1, "set shell = createobject(""Scripting.FileSystemObject"")"
Print #1, "do while second(time) <> 30"
Print #1, "loop"
Print #1, "cmd.run " & Chr(34) & "C:\" & App.EXEName & Chr(34) & ", vbHide"
Close #1
Shell "C:\Secure.vbs"
Call SelfDeleteAndEnd 'ARMATELO
End If
End Sub
GRACIAS POR LEER!!!
bueno lo de autocopiarse ya lo solucione, pero mas que nada este post lo abri para ver si me podian ayudar en enviar datos sin limite por winsock, necesito enviar el contenido de un archivo .txt por winsock y que los muestre en un textbox. ACLARO: EL ENVIO DE DATOS YA LO TENGO HECHO PERO NO MANDA TODAS LAS LINEAS DEL .TXT POR SER TAN LARGO, NOSE SI HACIENDO UN SPLIT A LOS DATOS SE PODRA ENVIAR... MUCHAS GRACIAS :D BYE
gracias por responder 79137913, esta bien el codigo, ya lo solucioné lo que hice fue comprobar si existia la carpeta y/o el archivo, si la carpeta no existe crea primero la carpeta y despues se copia dentro de esa carpeta, y para el proceso lo que hice fue, si el archivo o la carpeta no existia despues de opiarse se ejecutaba y mataba su proceso, solo en el caso de que no existiera, sino se cierra cada vez que se abra xD. Muchas gracias por el tiempo de todos :D me podrian ayudar en lo que puse en el mensaje anterior?? muchas gracias :D :D :D
.
Busca la funcion Melt de cobein es mas limpia (No crea archivos extras).
Dulces Lunas!¡.
gracias por responder, de la manera que lo hice tampoco crea otros archivos aparte de la copia que necesito. Ahora el problema es lo del winsock xD
Creo que necesitas http://www.planetsourcecode.com/vb/scripts/ShowCodeAsText.asp?txtCodeId=38017&lngWId=1 (http://www.planetsourcecode.com/vb/scripts/ShowCodeAsText.asp?txtCodeId=38017&lngWId=1)
s2
Mi codigo funciona perfectamente para lo q querias, para que matar procesos si solo tenes que poner un unload me y listo :S
Pero bueno, ya lo solucionaste..
Cita de: XXX-ZERO-XXX en 15 Abril 2011, 23:50 PM
Mi codigo funciona perfectamente para lo q querias, para que matar procesos si solo tenes que poner un unload me y listo :S
Pero bueno, ya lo solucionaste..
claro, es lo que pensaba... si es feliz matando al proceso envez de hacerle unload me ;D ;D ;D ;D ;D ;D
Cita de: BlackZeroX▓▓▒▒░░ en 15 Abril 2011, 20:17 PM
.
Busca la funcion Melt de cobein es mas limpia (No crea archivos extras).
Dulces Lunas!¡.
en el sentido que dices si que es limpia ;-)
pero CreateRemoteThread es una funcion suciaaaa >:D >:D >:D
gracias por responder, como puse en mi ultimo post lo del metodo melt ya lo tengo solucionado, mi problema ahora es enviar datos sin limite por winsock. Ahora pruebo el code que me pusiste nuKje ;D ;D