elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6 7 8 9 10
31  Programación / Programación Visual Basic / Alguien me puede probar este codigo. en: 29 Agosto 2010, 01:01 am
hola nesecito a alguien que tenga windows seven y me pueda testear este codigo que sirve para reproducir un archivo avi que forma parte de los recursos de una dll. (mas informacion aqui)


estuve probando este codigo en Window Seven (con la PC virtual) y no me funciona, pero no parece ser culpa del codigo sino que los AVI dentro de las dll parecen tener o un error o algun codec no reconosido. (ya los extrage con el reshacker y no me los reproduce ni el windows media player.)

Código
  1. Option Explicit
  2. Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
  3. Private Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
  4. Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  5. Private Declare Function CreateWindowEx Lib "user32" 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, lpParam As Any) As Long
  6. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  7. Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
  8. Private Const ANIMATE_CLASS = "SysAnimate32"
  9. Private Const WS_EX_TRANSPARENT = &H20&
  10. Private Const ACS_TRANSPARENT = &H2&
  11. Private Const ACS_AUTOPLAY = &H4&
  12. Private Const WM_USER = &H400&
  13. Private Const ACM_OPEN = WM_USER + 100
  14. Private Const ACM_PLAY = WM_USER + 101
  15. Private Const ACM_STOP = WM_USER + 102
  16. Private Const WS_VISIBLE As Long = &H10000000
  17. Private Const WS_CHILD As Long = &H40000000
  18.  
  19. Dim hAnimation As Long
  20. Dim hModule As Long
  21.  
  22. Private Sub Form_Initialize()
  23.    InitCommonControls
  24. End Sub
  25.  
  26. Private Sub Form_Load()
  27.    hModule = LoadLibraryEx("c:\windows\system32\shell32.dll", 0, &H2)
  28.    hAnimation = CreateWindowEx(WS_EX_TRANSPARENT, ANIMATE_CLASS, "", WS_CHILD Or WS_VISIBLE Or ACS_TRANSPARENT Or ACS_AUTOPLAY, 0, 0, 0, 0, Me.hwnd, 0&, App.hInstance, ByVal 0&)
  29.    Call SendMessage(hAnimation, ACM_OPEN, hModule, ByVal "#150")
  30.    FreeLibrary hModule
  31. End Sub
  32.  
  33. Private Sub Form_Unload(Cancel As Integer)
  34.    DestroyWindow hAnimation
  35. End Sub
  36.  

En nombre del recurso esta correcto. en xp funciona a alguien no le funciona en Seven?
32  Programación / Programación Visual Basic / Propiedades en las clases en: 19 Agosto 2010, 22:11 pm
Hola una pregunta con respecto a las propiedades en las clases usualmente se utiliza de esta forma para establecer una propiedad

Código:
Option Explicit
Private m_SearchInSubFolder As Boolean

Public Property Let SearchInSubFolder(ByVal Value As Boolean)
    m_SearchInSubFolder = Value
End Property

Public Property Get SearchInSubFolder() As Boolean
    SearchInSubFolder = m_SearchInSubFolder
End Property

con el fin de atribuirle un valor a m_SearchInSubFolder, como verán dentro de la propiedad no se ejecuta nada mas entonces la  pregunta es tiene algo de malo si yo directamente declaro la variable como publica

Código:
Public m_SearchInSubFolder As Boolean

Saludos.
33  Programación / Programación Visual Basic / Alguien lo puede hacer mas rapido? en: 19 Agosto 2010, 00:03 am
Buenas esto no es un reto, solo me intriga saber si se pude crear/mejorar una funcion mas rapida que esta que hice para buscar una palabra en un archivo, la funcion trabaja con bytes y no con string, como ejemplo puse que busque una palabra existente dentro del "Explorer.exe" y un bucle de 100 vueltas para exijirle un poco a la función. Tambien comente una palabra inexistente para probar.
no discrimina por mayusculas o minusculas "deve encontrarla de cualquier forma".

Código
  1. Option Explicit
  2. Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
  3.  
  4. Private Declare Function CharUpperBuffA& Lib "user32" (lpsz As Any, ByVal cchLength&)
  5. 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
  6. Private Declare Function ReadFile Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, ByRef lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long
  7. Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
  8. Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
  9. Private Declare Function GetFileSize Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpFileSizeHigh As Long) As Long
  10. Private Declare Function SetFilePointer Lib "kernel32.dll" (ByVal hFile As Long, ByVal lDistanceToMove As Long, ByRef lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
  11.  
  12. Private Type LARGE_INTEGER
  13.    lowpart As Long
  14.    highpart As Long
  15. End Type
  16.  
  17.  
  18. Private Const GENERIC_READ          As Long = &H80000000
  19. Private Const FILE_SHARE_READ       As Long = &H1
  20. Private Const OPEN_EXISTING         As Long = 3
  21. Private Const INVALID_HANDLE_VALUE  As Long = -1
  22. Private Const FILE_BEGIN            As Long = 0
  23.  
  24. Private aUChars(255) As Byte
  25.  
  26. Private Function LargeIntToCurrency(Low As Long, High As Long) As Currency
  27.    Dim LI As LARGE_INTEGER
  28.    LI.lowpart = Low: LI.highpart = High
  29.    CopyMemory LargeIntToCurrency, LI, LenB(LI)
  30.    LargeIntToCurrency = LargeIntToCurrency * 10000
  31. End Function
  32.  
  33. Private Function CurrencyToLargeInt(ByVal Curr As Currency) As LARGE_INTEGER
  34.    Curr = Curr / 10000
  35.    CopyMemory CurrencyToLargeInt, Curr, LenB(Curr)
  36. End Function
  37.  
  38.  
  39. Private Function FindWordInFile(ByVal sPath As String, ByVal sWord As String, Optional ByVal bUnicode As Boolean) As Boolean
  40.    Dim bArray() As Byte
  41.    Dim lRet As Long
  42.    Dim hFile As Long
  43.    Dim sFind() As Byte
  44.    Dim s As String
  45.    Dim t As Long
  46.    Dim i As Long
  47.    Dim FileSize As Currency
  48.    Dim tLI As LARGE_INTEGER
  49.    Dim LenBuffer As Long
  50.    Dim CurPos As Currency
  51.  
  52.    sWord = UCase(sWord)
  53.    If bUnicode Then sWord = StrConv(sWord, vbUnicode)
  54.    sFind = StrConv(sWord, vbFromUnicode)
  55.  
  56.    hFile = CreateFile(sPath, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, 0, 0)
  57.  
  58.    If hFile <> INVALID_HANDLE_VALUE Then
  59.  
  60.  
  61.        tLI.lowpart = GetFileSize(hFile, tLI.highpart)
  62.  
  63.        LenBuffer = &H2800 ' 10 KB
  64.  
  65.        FileSize = LargeIntToCurrency(tLI.lowpart, tLI.highpart)
  66.  
  67.        If FileSize < UBound(sFind) Then GoTo OutSearch
  68.  
  69.        If LenBuffer > FileSize Then LenBuffer = FileSize
  70.  
  71.        ReDim bArray(LenBuffer - 1)
  72.  
  73.        Do
  74.            ReadFile hFile, bArray(0), UBound(bArray) + 1, lRet, 0&
  75.  
  76.            If lRet = 0 Then Exit Do
  77.  
  78.            CurPos = CurPos + lRet
  79.  
  80.            If lRet < LenBuffer Then
  81.                ReDim Preserve bArray(lRet)
  82.            End If
  83.  
  84.            If InBytes(bArray, sFind) <> -1 Then
  85.                FindWordInFile = True
  86.                Exit Do
  87.            End If
  88.  
  89.            If CurPos = FileSize Then Exit Do
  90.  
  91.            tLI = CurrencyToLargeInt(CurPos - UBound(sFind) + 1)
  92.  
  93.            SetFilePointer hFile, tLI.lowpart, tLI.highpart, FILE_BEGIN
  94.  
  95.        Loop
  96.  
  97. OutSearch:
  98.  
  99.        CloseHandle hFile
  100.  
  101.    End If
  102. End Function
  103.  
  104.  
  105.  
  106. Public Function InBytes(ByRef bvSource() As Byte, ByRef bvMatch() As Byte) As Long
  107.  
  108.    Dim i       As Long
  109.    Dim j       As Long
  110.    Dim lChr    As Byte
  111.    Dim LenMach As Long
  112.  
  113.    LenMach = UBound(bvMatch)
  114.  
  115.    lChr = bvMatch(0)
  116.  
  117.    If LenMach > 0 Then
  118.  
  119.        For i = 0 To UBound(bvSource) - LenMach
  120.  
  121.            If (lChr = aUChars(bvSource(i))) Then
  122.  
  123.                j = LenMach - 1
  124.  
  125.                Do
  126.                    If bvMatch(j) <> aUChars(bvSource(i + j)) Then GoTo NotEqual
  127.                    j = j - 1
  128.                Loop While j
  129.  
  130.                InBytes = i
  131.  
  132.                Exit Function
  133.  
  134.            End If
  135. NotEqual:
  136.  
  137.        Next
  138.  
  139.    Else
  140.        For i = 0 To UBound(bvSource)
  141.            If (lChr = aUChars(bvSource(i))) Then
  142.                InBytes = i
  143.                Exit Function
  144.            End If
  145.        Next
  146.    End If
  147.  
  148.    InBytes = -1
  149. End Function
  150.  
  151. Private Sub Form_Initialize()
  152.    Dim i As Long
  153.  
  154.    For i = 0 To 255: aUChars(i) = i: Next
  155.    CharUpperBuffA aUChars(0), 256
  156.  
  157. End Sub
  158.  
  159. Private Sub Form_Load()
  160.    Dim t As Long, i As Long, Ret As Boolean
  161.    t = GetTickCount
  162.    For i = 0 To 100 'Este bucle es solo para exijirle un poco mas a la funcion
  163.        Ret = FindWordInFile(Environ("windir") & "\explorer.exe", "Mostrar en el escritorio", True)
  164.        'Ret = FindWordInFile(Environ("windir") & "\explorer.exe", "esta palabra no existe")
  165.    Next
  166.  
  167.    MsgBox GetTickCount - t
  168.    Me.Caption = Ret
  169.  
  170. End Sub
  171.  

PD: Complilarlo
34  Programación / Programación Visual Basic / como saber si un directorio puede se modificado. en: 5 Agosto 2010, 00:15 am
Hola una pregunta como se si una carpeta o unidad puede ser escrita, por ejemplo si quisiera crear una carpeta en la unidad de cd no podría o por ejemplo si fuera una cuenta de usuario y quisiera crear una carpeta en un directorio donde no tengo privilegios tampoco podría.

se que puedo usar on error pero cual es la forma correcta?, GetAttr sirve en estos casos?

Saludos
35  Programación / Programación Visual Basic / [Source] Menu Explorer en: 21 Julio 2010, 08:42 am
Módulo clase que permite visualizar un menú con los archivos alojados en nuestra PC, su función principal es la de explorar y recuperar la ruta de un archivo, tal como lo hacen los cuadros de diálogo (CommonDialog). Tiene opciones tales como poder filtrar el o los tipos de archivos requeridos, mostrar o no archivos ocultos, establecer algunas carpetas especiales por defecto en el menú principal, posee un Tooltips con algunos datos del archivo y reconoce los accesos directos.
Utiliza la ClsMenuImage para poder insertar íconos en el menú.
La primera vez que llamemos al menú si es una carpeta con muchos archivos puede ser un poco lento al cargar los items, pero una vez que su cache se haya creado es más rápido.
He tenido que deshabilitar algunas funciones que recuperaban palabras del sistema, lo cual hacía que si se ejecutaba en una PC que su sistema operativo no era en castellano las mostraba en su idioma correcto, este supresión se debe a que algunos antivirus detectaban una o varias Apis como una amenaza
(me cago en Avira Antivirus opten por no usarlo)



Descargar

36  Programación / Programación Visual Basic / [Source]Menú con Imagenes en: 19 Julio 2010, 09:39 am
Este es un módulo clase que sirve para insertar imágenes en el menú, a diferencia del control de usuario HookMenu, este sólo requiere un simple módulo, quizás no cuente con una interfaz sencilla para insertar las imágenes ya que con este módulo tendremos que hacerlo mediante código.
Lo que intenté preservar es que el ícono no modifique el estilo visual de Windows, es decir, el menú no tendrá el aspecto de Office o Ribbon.
También cuenta con la posibilidad de agregarle imágenes a la barra de menú y a los menúes creados mediante Apis (CreatePopupMenu).
La clase soporta imágenes .png, .ico y todos los formatos estándar de imágenes. Este módulo sólo funcionará en Windows XP y posteriores, ya que las versiones anteriores no cuentan con GDI Plus.
En Windows XP el módulo necesita subclasificar la ventana que contiene o llama al menú, pero en Windows Vista y Windows 7 esto no es necesario ya que corrigieron el error que tenían los menúes con bitmaps.






Descarga

cualquier duda, sugerencia, o error reportar.

Mañana les traigo algo mejor  ;D
37  Programación / Programación Visual Basic / [Source]Compresor de ejecutables en: 19 Marzo 2010, 19:52 pm
Este es un proyecto que tenia ganas de intentar hacer, sirve (o es lo que intenta)  comprimir un ejecutable tipo como el UPX, si bien funciona todo bien la compresion es muy baja (desde el vamos es stub esta echo en vb) los métodos empleados son inyeccion en la memoria y CallApibyName (creo que estas funciones son de Cobein y/o Karcrack), CloneFile by ZeR0 para colonar los recursos, y para comprimir utiliza el api nativa RtlCompressBuffer

bueno lo peor de todo es que varios de los antivirus lo detectan como un código malicioso  :-[ y abría que hacer muchos cambios para que esto no pase.

Descargar
38  Programación / Programación Visual Basic / [Source] Escritorio Remoto en: 4 Febrero 2010, 09:43 am
Este Proyecto comenzó en Febrero del 2007 en resultado a  este hilo  donde conocí a Cobein y decidimos intentar crear un Escritorio Remoto, si bien hubo buenos avances, el proyecto quedó parado, y bueno me decidí a terminarlo. Aunque esté muy lejos de la velocidad del VNC o TeamViewer, creo que los esfuerzos son redituables.
Para los que no saben de qué se trata, les explico, son dos aplicaciones que se conectan vía IP y puede manipularse la pantalla de una PC remotamente, por ejemplo si un cliente en china y se conecta a tu PC, tú puedes manejar a ésta como si estuvieras parado en frente a ella.

Que opciones tiene?:

    * Transmitir la captura de la pantalla.
    * Transmitir el icono del cursor.
    * Mover el mouse y hacer click.
    * Escribir remotamente.
    * Enviar y recibir el texto del portapapeles.
    * Seleccionar la calidad de las capturas (mientras más baja, mayor velocidad de transmisión).
    * Opción de ver en pantalla completa o en modo ajustado a la ventana.

Fallos encontrados:

    * No se pueden hacer combinaciones de teclas, es decir, no se puede utilizar Ctrl + V (tendría que cambiar el método utilizado).
    * No pude testarlo bien ya que no cuento con otra PC para realizar todas las pruebas necesarias y tuve que arreglarme con la PC Virtual, así que quizás remotamente empiecen a saltar algunos que otros errores o cuelgues de transmisión.

Cosas a destacar:

    * La conexión es Inversa, pero poniendo algo de mano en el código puede revertirse.
    * Utiliza GDI+ esto significa que sólo funcionará desde Windows XP en adelante.
    * No envía la captura de la pantalla completa, sino sólo los fragmentos modificados.
    * El código creo que está medianamente prolijo y entendible, si se tiene los conocimientos necesarios.




Descargar
39  Programación / Programación Visual Basic / [Source] Reniciar la aplicacion ante un Error en: 28 Diciembre 2009, 04:35 am
Este es un modulo bas para Reiniciar la aplicación si es que aparece un error y no fue controlado  (No errores de sistemas esos que aparece el maldito boton"No Enviar") sino los comunes de vb

Código:
Option Explicit
'Autor: Leandro Ascierto
'Web:   www.leandroascierto.com.ar
'Date:  28/12/2009
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) 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 Declare Function SetProp Lib "user32.dll" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (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 Declare Sub FatalExit Lib "kernel32" (ByVal code As Long)

Dim hWinStatic As Long
Dim AppPath As String
Dim LastError As Long

Private Function CallSomeFunction()
    'No borrar esta linea
End Function

Public Sub StarProtect()
    hWinStatic = CreateWindowEx(0, "Static", "WindowControlerCrash", 0, 0, 0, 0, 0, 0, 0, 0, 0&)
    AppPath = GetAppPath
    SetTimer hWinStatic, 0, 100, AddressOf TimerProc
End Sub

Public Sub EndProtect()
    KillTimer hWinStatic, 0
    DestroyWindow hWinStatic
End Sub

Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    Dim Ret As String
   
    If Err.Number = 40040 Then
        ShellExecute hWinStatic, vbNullString, AppPath, LastError, vbNullString, 1
        FatalExit 1
    Else
        LastError = Err.Number
        Ret = CallSomeFunction
    End If
   
End Sub

Private Function GetAppPath() As String
    Dim ModuleName As String
    Dim Ret As Long
    ModuleName = String$(255, Chr$(0))
    Ret = GetModuleFileName(App.hInstance, ModuleName, 255)
    GetAppPath = Left$(ModuleName, Ret)
End Function

Para probarlo en un formulario con Tres botones

Código:
Option Explicit

Private Sub Form_Load()
    If Command$ <> "" Then Me.Caption = "Aplicación Reinciada por error: " & Command$
    StarProtect 'comienza la protección
End Sub

Private Sub Form_Unload(Cancel As Integer)
    EndProtect 'Detiene la protección
End Sub


Private Sub Command1_Click()
    MsgBox 1 / 0 'Error Divición por cero
End Sub

Private Sub Command2_Click()
    Dim i As Integer
    i = 8000000000000# 'Error Desvordamiento
End Sub

Private Sub Command3_Click()
    Dim c As Date
    c = "hola" 'Error no coinciden los tipos
End Sub

Lo compilan y verán que al producir un error la aplicacion se reinicia.

Saludos.
40  Programación / Programación Visual Basic / URLDownloadToFileA hace saltar el antivirus? en: 29 Noviembre 2009, 02:08 am
Hola una consulta alguien me puede decir si usa el api URLDownloadToFileA hace saltar los antivirus o marcar a la aplicacion como peligrosa?, es recomendable o no usarla?(la aplicación no es un virus ni nada de eso.)


Saludos.
Páginas: 1 2 3 [4] 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines