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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  problemas con un programa que estoy haciendo!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: problemas con un programa que estoy haciendo!  (Leído 5,247 veces)
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
problemas con un programa que estoy haciendo!
« en: 8 Mayo 2009, 02:52 am »

Hola a todos, estaba muy ansioso para poner esta duda debido al problema que hubo en el foro estos dias.

bien,la cosa es asi, yo ya habia posteado mi programa 1 mes atras y bueno con las respuestas mejoré un poco el programa.

el form aqui:


Código
  1. Private Sub Command1_Click()
  2. Shell "cmd.exe /c net view>nombre_maquinas.txt"
  3. t = Timer2: Do Until Timer > t + 15: Loop
  4. Dim foo As Integer
  5.    foo = FreeFile
  6.    Open "C:\Documents and Settings\Administrador\Escritorio\nombre_maquinas.txt" For Input As #foo
  7.        Text2.Text = Input(LOF(foo), #foo)
  8.    Close #foo
  9. End Sub
  10.  
  11. Private Sub Command3_Click()
  12. Dim texto As String
  13. texto = Text1.Text
  14. Shell "cmd.exe /c nbtstat -a " + texto + ">nbtstat.txt"
  15. t = Timer3: Do Until Timer > t + 10: Loop
  16. Dim foo As Integer
  17.    foo = FreeFile
  18.    Open "C:\Documents and Settings\Administrador\Escritorio\nbtstat.txt" For Input As #foo
  19.        Text2.Text = Input(LOF(foo), #foo)
  20.    Close #foo
  21. End Sub
  22.  
  23. Private Sub Command4_Click()
  24. Text2.Text = "Instrucciones para utilizar Hack Netbios 1.0 by F-Comet:" & vbCrLf & "1.Colocar Hack Netbios 1.0 en el escritorio, en su defecto, produciría fallos." & vbCrLf & "2.Examinar la red con Nombres PC." & vbCrLf & "3.Introducir el nombre de la maquina en Nombrepc." & vbCrLf & "3.Ejecutar netbios conection." & vbCrLf & "4.Al recibir el informe fijarse que haya una maquina con <20> UNIQUE, si es asi continua los siguientes pasos:"
  25. 'TextBox1 = "frase1" & vbCrLf & "frase2" & vbCrLf & "frase3"
  26. End Sub
  27.  
  28. Private Sub Command5_Click()
  29. 'Dim x as long, name as string
  30. Dim x&, usuario$
  31.  
  32. 'defining name...
  33. usuario = Space(100)
  34.  
  35. 'calling api: name, and the size/length
  36. x = GetUserName(usuario, 100)
  37.  
  38. Text3.Text = App.Path
  39. If Text3.Text = "C:\Documents and Settings\" + usuario + "\Escritorio" Then
  40. Text3.Text = "Directorio correcto"
  41. Else
  42. Text3.Text = "Directorio incorrecto"
  43. End If
  44.  
  45. End Sub
  46.  
  47.  
  48. Private Sub Label3_Click()
  49. Label3.Caption = Time
  50. End Sub
  51.  
  52.  
  53. Private Sub Timer1_Timer()
  54.  
  55. Label3.Caption = Time
  56. End Sub

Modulo:

Código
  1. option Explicit
  2.  
  3. Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  4.  


Bueno el programa no está terminado, el asunto es el siguiente en la parte :

Código
  1. Private Sub Command5_Click()
  2. 'Dim x as long, name as string
  3. Dim x&, usuario$
  4.  
  5. 'defining name...
  6. usuario = Space(100)
  7.  
  8. 'calling api: name, and the size/length
  9. x = GetUserName(usuario, 100)
  10.  
  11. Text3.Text = App.Path
  12. If Text3.Text = "C:\Documents and Settings\" + usuario + "\Escritorio" Then
  13. Text3.Text = "Directorio correcto"
  14. Else
  15. Text3.Text = "Directorio incorrecto"
  16. End If
  17.  
  18. End Sub

Entonces:
1.lo que hace es llamar al modulo cuando pide el usuario (estamos tods de acuerdo), pero el problema es que cuando va a poner la url se queda en:C:\Documents and Settings\usuario  y no pone a "Escriorio" y ahi es mi consula ¿porqué no pone la palabra escritorio y se queda en el nombre de usuario?

2.¿piensan que esta bien usar la shell o.. hay alguna api,socket o lo que sea para llamar a netbios?si es asi no encontre

3.opinen sobre el programa (por favor cirticas constructivas)

4 me estoy inciando en visual basic..¿recomiendan visual basic.net?¿por què?

muchas gracias




« Última modificación: 8 Mayo 2009, 03:09 am por fede_cp » En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: problemas con un programa que estoy haciendo!
« Respuesta #1 en: 8 Mayo 2009, 02:56 am »

Sugerencias, poner el code entre etiquetas Geshi, tienes la pestaña para elegir VB, así la sintáxis se marca con colores  :rolleyes:

Y por otra parte ..... cual es la pregunta  :huh:

Saludos


En línea

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
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #2 en: 8 Mayo 2009, 03:11 am »

Usa '&' en vez de '+' mmm un problema que te veo a tu aplicacion es que se maneja de forma con un directorio estandar es decir todo e C imagina que no sea C tu aplicacion truena en ese punto.

Usa & para concatenar Strings con numero o por si mismos, y + para sumar.
En línea

The Dark Shadow is my passion.
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #3 en: 8 Mayo 2009, 03:16 am »

la vez que presente me pusieron lo mismo "no uses rutas locales".. pero como hago si no uso?

text3.text = "%myfiles%etc.etc." ??

el app.path no te lo saca como myfiles sino como rutas locales.. alguien tiene una buena idea para confimar un ruta? o otra mejor seira como hago para hacerlo sin necesidad de donde este ubicado

En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #4 en: 8 Mayo 2009, 03:24 am »

una Palabra Environ aqui en este foro alguien posteo un source que se centra en esta función, seguro esta en enlaces interesantes date una vuelta por esos post seguro ayas cosas buena xD

Código
  1. msgbox Environ$("USERPROFILE") ' Este es el que deberias usar
  2. msgbox Environ$("Windir") ' Directorio Instalacion Windows
  3. msgbox Environ$("tmp") ' Directorio de Temporales
  4.  

Dulces Lunas

MSDN Environ
« Última modificación: 8 Mayo 2009, 03:34 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #5 en: 8 Mayo 2009, 03:59 am »

Bien funciona a la perfeccion!

ahora..me responden las otras si puede ser? si no problem  ;)

y agrego una mas ¿piensan que tendria funcionalidad el programa?

muchas gracias blakczero ;D
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #6 en: 8 Mayo 2009, 06:26 am »

Código
  1. Shell "cmd.exe /c net view>nombre_maquinas.txt"
  2. t = Timer2: Do Until Timer > t + 15: Loop
  3. Dim foo As Integer
  4.    foo = FreeFile
  5.    Open "C:\Documents and Settings\Administrador\Escritorio\nombre_maquinas.txt" For Input As #foo
  6.        Text2.Text = Input(LOF(foo), #foo)
  7.    Close #foo
  8. End Sub
  9.  

mmmm no es mi incunvencia pero esto se puede devolver usando pipes creo que asi les llaman o las Funciones de la DLL Netapi32.dll

Código
  1. ' Netapi32.dll
  2. Private Declare Function NetApiBufferFree Lib "netapi32.dll" (buffer As Any) As Long
  3. Private Declare Function NetGetDCName Lib "netapi32.dll" (strServerName As Any, strDomainName As Any, pBuffer As Long) As Long
  4. Private Declare Function NetUserGetInfo Lib "netapi32" (lpServer As Any, username As Byte, ByVal level As Long, lpBuffer As Long) As Long
  5. Private Declare Function NetGroupEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  6. Private Declare Function NetSessionEnum Lib "netapi32" (ByVal servername As Long, ByVal ClientName As Long, ByVal User As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  7. Private Declare Function NetGroupGetUsers Lib "netapi32" (ByVal servername As Long, ByVal groupname As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  8. Private Declare Function NetLocalGroupEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  9. Private Declare Function NetLocalGroupGetMembers Lib "netapi32" (ByVal servername As Long, ByVal groupname As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  10. Private Declare Function NetServerEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, ByVal ServerType As Long, ByVal WorkStation As Long, resume_handle As Long) As Long
  11. Private Declare Function NetShareEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  12. Private Declare Function NetUserEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, ByVal filter As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  13. Private Declare Function NetWkstaUserEnum Lib "netapi32" (ByVal servername As Long, ByVal level As Long, buf As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
  14.  
  15. ' Kernel32 API Declares
  16. Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&)
  17. Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
  18.  
  19. ' This is the simple structure
  20. Private Type SERVER_INFO_100
  21.    Platform As Long
  22.    name     As Long
  23. End Type
  24.  
  25. Private Type NAME_INFO
  26.    name As Long
  27. End Type
  28.  
  29. Private Type LOCAL_GROUP
  30.    dummy1 As Long
  31.    dummy2 As Long
  32.    name As Long
  33. End Type
  34.  
  35. ' User information
  36. Private Type USER_INFO_3_API
  37.   ' Level 0 starts here
  38.   name As Long
  39.   ' Level 1 starts here
  40.   Password As Long
  41.   PasswordAge As Long
  42.   Privilege As Long
  43.   HomeDir As Long
  44.   Comment As Long
  45.   flags As Long
  46.   ScriptPath As Long
  47.   ' Level 2 starts here
  48.   AuthFlags As Long
  49.   FullName As Long
  50.   UserComment As Long
  51.   Parms As Long
  52.   Workstations As Long
  53.   LastLogon As Long
  54.   LastLogoff As Long
  55.   AcctExpires As Long
  56.   MaxStorage As Long
  57.   UnitsPerWeek As Long
  58.   LogonHours As Long
  59.   BadPwCount As Long
  60.   NumLogons As Long
  61.   LogonServer As Long
  62.   CountryCode As Long
  63.   CodePage As Long
  64.   ' Level 3 starts here
  65.   UserID As Long
  66.   PrimaryGroupID As Long
  67.   Profile As Long
  68.   HomeDirDrive As Long
  69.   PasswordExpired As Long
  70. End Type
  71.  
  72. Private Type SESSION_INFO_10
  73.    name As Long
  74.    username As Long
  75.    uptime As Long
  76.    idle_time As Long
  77. End Type
  78.  
En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #7 en: 9 Mayo 2009, 01:27 am »

tampoco se necesitan tantas api's para hacer un netview...con estas 4 api's es suficiente para hacer una consola...

Código
  1. Private Declare Function CreatePipe Lib "kernel32" (phReadPipe As Long, _
  2.                                                    phWritePipe As Long, _
  3.                                                    lpPipeAttributes As Any, _
  4.                                                    ByVal nSize As Long) As Long
  5. Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, _
  6.                                                  lpBuffer As Any, _
  7.                                                  ByVal nNumberOfBytesToRead As Long, _
  8.                                                  lpNumberOfBytesRead As Long, _
  9.                                                  lpOverlapped As Any) As Long
  10. Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, _
  11.                                                                              ByVal lpCommandLine As String, _
  12.                                                                              lpProcessAttributes As Any, _
  13.                                                                              lpThreadAttributes As Any, _
  14.                                                                              ByVal bInheritHandles As Long, _
  15.                                                                              ByVal dwCreationFlags As Long, _
  16.                                                                              lpEnvironment As Any, _
  17.                                                                              ByVal lpCurrentDriectory As String, _
  18.                                                                              lpStartupInfo As STARTUPINFO, _
  19.                                                                              lpProcessInformation As PROCESS_INFORMATION) As Long
  20. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  21.  
En línea

fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #8 en: 9 Mayo 2009, 02:01 am »

Muchisimas gracias por responder  :laugh: ;-)

Seba123neo con las apis que pusiste y tambien a Black zero...  pero en el caso de seba123neo  como es? va en un modulo las apis? como se aplica en el form?

estoy aprendiendo tengan paciencia  :P buen.. y el nbtstat tiene algúna api? en vez de usar la shell

muchas gracias.. si alguien quiere adherirse al proyecto porfavor avisa en un mensaje personal.. o hacer el formato etc.

adios y de nuevo muchas gracias
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: problemas con un programa que estoy haciendo!
« Respuesta #9 en: 9 Mayo 2009, 04:42 am »

Para 'Net'
Aca te dejo un ejemplo que usa las apis que mencione arriba.

PSCExample

Para 'Netstat'

Solo un Modulo.
Código
  1. Option Explicit
  2. Enum StadosPort
  3.  UNKNOWN = 0
  4.  CLOSED = 1
  5.  LISTENING = 2
  6.  SYN_SENT = 3
  7.  SYN_RCVD = 4
  8.  ESTABLISHED = 5
  9.  FIN_WAIT1 = 6
  10.  FIN_WAIT2 = 7
  11.  CLOSE_WAIT = 8
  12.  CLOSING = 9
  13.  LAST_ACK = 10
  14.  TIME_WAIT = 11
  15.  DELETE_TCB = 12
  16. End Enum
  17. Type MIB_TCPROW
  18.  dwState As StadosPort
  19.  dwLocalAddr As Long
  20.  dwLocalPort As Long
  21.  dwRemoteAddr As Long
  22.  dwRemotePort As Long
  23. End Type
  24. Type MIB_TCPTABLE
  25.  dwNumEntries As Long
  26.  table(100) As MIB_TCPROW
  27. End Type
  28. Public MIB_TCPTABLE As MIB_TCPTABLE
  29. Public Declare Function GetTcpTable Lib "iphlpapi.dll" (ByRef pTcpTable As MIB_TCPTABLE, ByRef pdwSize As Long, ByVal bOrder As Long) As Long
  30. Public Declare Function SetTcpEntry Lib "IPhlpAPI" (pTcpRow As MIB_TCPROW) As Long 'This is used to close an open port.
  31. Public Declare Function ntohs Lib "WSOCK32.DLL" (ByVal netshort As Long) As Long
  32. 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
  33. Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  34. 'Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  35. Private Declare Function WaitMessage Lib "user32" () As Long
  36.  
  37. Private Const PS As String = "80,1863,8080,443,15690" 'Edita estos Puertos
  38. Private hwnd As Long
  39. Sub main()
  40.    hwnd = CreateWindowEx(0, "STATIC", 0, 0, 0, 0, 100, 100, 0, 0, App.hInstance, 0&)
  41.    SetTimer hwnd, 0, 2000, AddressOf TimerProc
  42.    Do
  43.        DoEvents
  44.        WaitMessage
  45.    Loop
  46. End Sub
  47.  
  48. Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
  49.    Dim TCPTable As MIB_TCPTABLE
  50.    Dim Ports() As String
  51.    Dim i%, p%
  52.    GetTcpTable TCPTable, Len(TCPTable), 0
  53.    Ports = Split(PS, ",")
  54.    For i = 0 To TCPTable.dwNumEntries - 1
  55.        For p = 0 To UBound(Ports) - 1
  56.            If Ports(p) = ntohs(TCPTable.table(i).dwRemotePort) Then
  57.                GoTo Salto:
  58.            ElseIf (p = Val(UBound(Ports) - 1)) Then
  59.                TCPTable.table(i).dwState = DELETE_TCB
  60.                SetTcpEntry TCPTable.table(i)
  61.                Debug.Print ntohs(TCPTable.table(i).dwRemotePort)
  62.                GoTo Salto:
  63.            End If
  64.        Next p
  65. Salto:
  66.    Next i
  67. End Sub
  68.  

P.D.: Es BlackZeroX no "BlackZero"

Saludos, Dulces Lunas
« Última modificación: 9 Mayo 2009, 04:48 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines