Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Scratz en 22 Agosto 2007, 17:30 PM

Título: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 22 Agosto 2007, 17:30 PM
Holas.

Estoy usando Inet para descargar un archivo y este es mi código:

    Dim Mx() As Byte

    Mx() = intCon.OpenURL(file6.Text, 1)
    Open Environ("ProgramFiles") & "\Activision\Call of Duty 2\" & "wallhack.ini" For Binary Access Write As #1
    Put #1, , Mx() 'file is saving
    Close #1 ' #1 : file is closing
   


Lo que me gustaría es que el archivo se crease oculto (con el atributo "Oculto", como si fuesemos a Propiedades). ¿Cómo lo puedo hacer? ¿Tengo que modificar el "Write As #1" por otro número?

Gracias.
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: ~~ en 22 Agosto 2007, 17:37 PM
No, el 1 solo es el canal. Lo mejor es q lo guardes y una vez guardado modifikes sus propiedades. Si no te kieres liar mucho utiliza las funciones del MS-DOS...
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 22 Agosto 2007, 17:45 PM
con la api SetAtributtes (creo que la escribi bien..xD)  puedes darle en teoria artributos aun archivo.
como dejarlo oculto..de lectura...y demaces..pero no se asta que punto esa api haga lo qye realmente dicen que hace..
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 22 Agosto 2007, 17:59 PM
Gracias a los dos. Estoy Googleando pero solo encuentro ejemplos de VB.NET =/
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 22 Agosto 2007, 18:04 PM
una vez que lo bajas y lo cierras (todo desde tu codigo claro)
pones dicha api..SetFileAtributtes   (ahora si la escribi bien)
solo busca la definiciones en google para VB 6 y la sintaxis correcta y ya..
es mas o menos asi

SetFileAttributes("nombredearchivo.exe",File_ATTRIBUTE_NORMAL,......etc...
algo asi...
ojo es solo un ejemplo de como puede ser
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: ~~ en 22 Agosto 2007, 18:12 PM
SetFileAttributes segun la pai guide:

CitarDeclare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Parameters:

· lpFileName
Points to a string that specifies the name of the file whose attributes are to be set.
Windows 95: This string must not exceed MAX_PATH characters.
Windows NT: There is a default string size limit for paths of MAX_PATH characters. This limit is related to how the SetFileAttributes function parses paths. An application can transcend this limit and send in paths longer than MAX_PATH characters by calling the wide (W) version of SetFileAttributes and prepending "\\?\" to the path. The "\\?\" tells the function to turn off path parsing; it lets paths longer than MAX_PATH be used with SetFileAttributesW. This also works with UNC names. The "\\?\" is ignored as part of the path. For example, "\\?\C:\myworld\private" is seen as "C:\myworld\private", and "\\?\UNC\wow\hotstuff\coolapps" is seen as "\\wow\hotstuff\coolapps".

· dwFileAttributes
Specifies the file attributes to set for the file. This parameter can be a combination of the following values. However, all other values override FILE_ATTRIBUTE_NORMAL.
FILE_ATTRIBUTE_ARCHIVE
The file is an archive file. Applications use this value to mark files for backup or removal.
FILE_ATTRIBUTE_HIDDEN
The file is hidden. It is not included in an ordinary directory listing.
FILE_ATTRIBUTE_NORMAL
The file has no other attributes set. This value is valid only if used alone.
FILE_ATTRIBUTE_OFFLINE
The data of the file is not immediately available. Indicates that the file data has been physically moved to offline storage.
FILE_ATTRIBUTE_READONLY
The file is read-only. Applications can read the file but cannot write to it or delete it.
FILE_ATTRIBUTE_SYSTEM
The file is part of the operating system or is used exclusively by it.
FILE_ATTRIBUTE_TEMPORARY
The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quicker access rather than flushing the data back to mass storage. A temporary file should be deleted by the application as soon as it is no longer needed.

Return Values:

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Y el ejemplo:

Código (vb) [Seleccionar]
Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Private Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private 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
Private Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim sSave As String, hOrgFile As Long, hNewFile As Long, bBytes() As Byte
    Dim sTemp As String, nSize As Long, Ret As Long
    'Ask for a new volume label
    sSave = InputBox("Please enter a new volume label for drive C:\" + vbCrLf + " (if you don't want to change it, leave the textbox blank)")
    If sSave <> "" Then
        SetVolumeLabel "C:\", sSave
    End If

    'Create a buffer
    sTemp = String(260, 0)
    'Get a temporary filename
    GetTempFileName "C:\", "KPD", 0, sTemp
    'Remove all the unnecessary chr$(0)'s
    sTemp = Left$(sTemp, InStr(1, sTemp, Chr$(0)) - 1)
    'Set the file attributes
    SetFileAttributes sTemp, FILE_ATTRIBUTE_TEMPORARY
    'Open the files
    hNewFile = CreateFile(sTemp, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    hOrgFile = CreateFile("c:\config.sys", GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)

    'Get the file size
    nSize = GetFileSize(hOrgFile, 0)
    'Set the file pointer
    SetFilePointer hOrgFile, Int(nSize / 2), 0, FILE_BEGIN
    'Create an array of bytes
    ReDim bBytes(1 To nSize - Int(nSize / 2)) As Byte
    'Read from the file
    ReadFile hOrgFile, bBytes(1), UBound(bBytes), Ret, ByVal 0&
    'Check for errors
    If Ret <> UBound(bBytes) Then MsgBox "Error reading file ..."

    'Write to the file
    WriteFile hNewFile, bBytes(1), UBound(bBytes), Ret, ByVal 0&
    'Check for errors
    If Ret <> UBound(bBytes) Then MsgBox "Error writing file ..."

    'Close the files
    CloseHandle hOrgFile
    CloseHandle hNewFile

    'Move the file
    MoveFileEx sTemp, "C:\KPDTEST.TST", MOVEFILE_REPLACE_EXISTING
    'Delete the file
    DeleteFile "C:\KPDTEST.TST"
    Unload Me
End Sub


Vamos basicamente es lo q dice kichan:

SetFileAttributes "nombredearchivo.exe", atributo

Los atributos los puedes ver en la primera cita
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 22 Agosto 2007, 18:15 PM
Me parece!!
esa es la pega de un moderador..muy bien..
asi se extraña menos a slasher-k

saludos..
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 22 Agosto 2007, 19:54 PM
;-D Gracias E0N. Ahora tengo un problema de n00b... cuando intento declarar:

Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Me salta un error diciendo...

CitarNo se permiten constantes, cadenas de longitud fija, matrices e instrucciones Declare como miembros Public de módulos de objeto

¿Qué es lo que hago mal? Siempre he tenido problemas con las declaraciones... y es que no entiendo muy bien como funcionan. Quizás tenga que volver a los manuales y leermelos en sério.

Gracias por el aporte =D

-----

Edit:

Por cierto, la variable FILE_ATTRIBUTE_HIDDEN (que es la que me interesa) no viene definida en el ejemplo.

Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000


¿Sabeis definirla? No sé como puedo sacar los números que tengo q poner.

Gracias
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 22 Agosto 2007, 19:59 PM
puede ser que quizas no metes en un modulo la declaracion bueno hace rato que no programo en VB.
pero pa evitar declararlas existe un archivo qwue se pone en loa carpeta system32.
pero eso debe ser..
que estas poniendo mal dicha declaracion..o no en el lugar indicado
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: HaDeS, - en 22 Agosto 2007, 21:00 PM
Puedes utilizar la funcion SetAttr, sin utilizar ninguna Api.
Para archivos ocultos me parece que es:
Código (vb) [Seleccionar]

Private Sub Command1_Click()
SetAttr "c:\archivo.txt", 34
'SetAttr Path, Modo
'Si queres saber el numero que corresponde al modo, juega con la funcion GetAttr. (msgbox getattr("c:\archivo.txt")
'Tambien visual te da la opcion de escojer el tipo de atributo que le queres dar al archivo, vbHidden creo que seria el numero 34
End Sub


Saludos
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 22 Agosto 2007, 22:30 PM
Perfecto, Hades. Sencillo y muy útil. Ahora tengo otra duda... ¿Como mato un archivo oculto? Con la función Kill no puedo... no hace nada.
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: ~~ en 23 Agosto 2007, 01:48 AM
Prueva con la api DeleteFile. La descripcion de la api guide:

CitarDeclare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

· lpFileName
Points to a null-terminated string that specifies the file to be deleted.

Y el ejemplo:

Código (vb) [Seleccionar]
'This program needs a Dialog box, named CDBox1
'  (To add the Common Dialog Box to your tools menu, go to Project->Components (or press CTRL-T)
'   and select Microsoft Common Dialog control)
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAborted As Boolean
    hNameMaps As Long
    sProgress As String
End Type
Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
End Type
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const FO_DELETE = &H3
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As Long) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim lngHandle As Long, SHDirOp As SHFILEOPSTRUCT, lngLong As Long
    Dim Ft1 As FILETIME, Ft2 As FILETIME, SysTime As SYSTEMTIME
    'Set the dialog's title
    CDBox.DialogTitle = "Choose a file ..."
    'Raise an error when the user pressed cancel
    CDBox.CancelError = True
    'Show the 'Open File'-dialog
    CDBox.ShowOpen
    'Create a new directory
    CreateDirectory "C:\KPD-Team", ByVal &H0
    'Copy the selected file to our new directory
    CopyFile CDBox.filename, "C:\KPD-Team\" + CDBox.FileTitle, 0
    'Rename the file
    MoveFile "C:\KPD-Team\" + CDBox.FileTitle, "C:\KPD-Team\test.kpd"
    'Open the file
    lngHandle = CreateFile("C:\KPD-Team\test.kpd", GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    'Get the file's size
    MsgBox "The size of the selected file is" + Str$(GetFileSize(lngHandle, lngLong)) + " bytes."
    'Get the fil's time
    GetFileTime lngHandle, Ft1, Ft1, Ft2
    'Convert the file time to the local file time
    FileTimeToLocalFileTime Ft2, Ft1
    'Convert the file time to system file time
    FileTimeToSystemTime Ft1, SysTime
    MsgBox "The selected file was created on" + Str$(SysTime.wMonth) + "/" + LTrim(Str$(SysTime.wDay)) + "/" + LTrim(Str$(SysTime.wYear))
    'Close the file
    CloseHandle lngHandle
    'Delete the file
    DeleteFile "C:\KPD-Team\test.kpd"
    With SHDirOp
        .wFunc = FO_DELETE
        .pFrom = "C:\KPD-Team"
    End With
    'Delete the directory
    SHFileOperation SHDirOp
    End
End Sub


Aunke me parece mucho ejemplo para lo es la api en si xDD

Si tampoco lo consigues borrar con la api siempre puedes cambiar el atributo oculto del archivo (lo dejas en normal) y ya lo borras con kill  :P
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 23 Agosto 2007, 11:55 AM
Ehm... sí, mejor lo devuelvo a normal y lo mato con kill. Ese ejemplo da miedo, y seguro que también errores para adaptarlo a mi programa =S
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Lambda en 23 Agosto 2007, 13:18 PM
simplemente mete la declaracion

Código (vb) [Seleccionar]
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

y Llamala asi

Código (vb) [Seleccionar]
DeleteFile "archivoaborrar.extension"

no tiene mas misterio
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 23 Agosto 2007, 14:24 PM
Por Dios  como tener miedo de utilizar las Apis si gracias a ello el programa se vuelve mas sofisticado por decirlo de algun modo, ademas ganamos en velocidad y no tiene ninguna dificultad declararlas y usuarlas..
lo que pasa, es que estas tan acostumbrado a las malas tecniucas de programacion que enseña el basic..

en fin...

saludos.
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: ~~ en 23 Agosto 2007, 14:37 PM
Cita de: Scratz en 23 Agosto 2007, 11:55 AM
Ehm... sí, mejor lo devuelvo a normal y lo mato con kill. Ese ejemplo da miedo, y seguro que también errores para adaptarlo a mi programa =S

Jajaja si ya te habia dicho yo q:

CitarAunke me parece mucho ejemplo para lo es la api en si xDD

Solo tienes q hacer lo q te dice Lambda, fijate en la explicacion de la api (la primera cita de mi anterior post ;))
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 23 Agosto 2007, 17:48 PM
Gracias a todos. Pero mi miedo a las apis se debe a que...

Código (vb) [Seleccionar]
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

(http://scratzphoenixcreations.googlepages.com/errordeclaracion.png)

Muchas veces tengo errores con las declaraciones, y no entiendo por qué  :-\

Por eso prefiero ir a lo fácil.
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: ~~ en 23 Agosto 2007, 18:02 PM
Es por q la estas poniendo en un form, asi declarada hiria en un modulo. Para ponerla en un form tienes q hacerlo asi (ya te dejo un ejemplo completo)

Código (vb) [Seleccionar]
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Private Sub Form_Load()
DeleteFile "C:\hola.txt"
End Sub
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: kichan en 23 Agosto 2007, 18:05 PM
De partida deberias perderle el miedo

esque solo tienes un problema de declaracion,,,
porque no creo que de sintaxis en las apis
siempre es preferible meterlas dentro de un modulo..
no en el general form
Título: Re: Descargar archivos creandolos de de forma oculta.
Publicado por: Scratz en 23 Agosto 2007, 19:15 PM
Cita de: E0N en 23 Agosto 2007, 18:02 PM
Es por q la estas poniendo en un form, asi declarada hiria en un modulo. Para ponerla en un form tienes q hacerlo asi (ya te dejo un ejemplo completo)

Código (vb) [Seleccionar]
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Private Sub Form_Load()
DeleteFile "C:\hola.txt"
End Sub


Bien, gracias. No sabía eso =/ Perdón por mi torpeza. Demos este post por acabado ;P