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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)



  Mostrar Temas
Páginas: [1] 2 3 4 5
1  Programación / Programación General / [RESUELTO]¿como funciona windows? en: 2 Septiembre 2011, 02:22 am
al encontrar algunas apis he encontrado algunas palabras y temas que desconocia o no sabia para que eran por ejemplo no sabia lo de memoria virtual hasta que hace 3 años por casualidad encontre un documento relacionado con asm y apis (mencionaba sobre memoria virtual) y recien me entere, DC HWND ni sabia, y asi cada ves que me encuentro con algo que no se tengo que ir a google a buscar cosa por cosa y de diferentes fuentes, esto es algo desordenado y peor es que no queda muy claro el tema buscando cosa por cosa.
tengo algunos libros sobre windows pero que son superficiales donde trata cosas como:
-¿que es un SO?
-archivos,apicaciones utilitarios,antivirus
-hardware
-panel de control,configuracion
-etc

lo que me interesaria saber es como trabaja windows pero por dentro a nivel de programacion, donde trate cosas como:
-como  maneja la memoria (primaria, cache)
-teorias sobre el subsistema de apis
-¿como se carga un programa o archivo en memoria? (creo que era algo de mapeado de archivo, o archivo proyectado en memoria)
-sobre las ventanas y sus dispositivos de contextos
-sockets
-y demas cosas que tenga windows relacionadas a apis

kizas sepan de algun libro o documentos que traten sobre esto (de preferencia windows XP)
2  Foros Generales / Foro Libre / colabora con un gif gracioso xD en: 31 Agosto 2011, 05:33 am
mientras andaba buscando algo vi algunos gif muy chistosones que son usadas como firma o imagen personal de algunos users:

Click Image to Enlarge Image Hosting

Click Image to Enlarge Image Hosting

Click Image to Enlarge Image Hosting


Click Image to Enlarge Image Hosting


quiza tienen algun gif como estos y podrian colgarlo xD

*veo que las imagenes salen estaticas, no se como podria modificar para que se muevan los gif xP
3  Seguridad Informática / Análisis y Diseño de Malware / [RESUELTO]codigos de las instrucciones en memoria ¿donde conseguirlas? en: 29 Agosto 2011, 20:19 pm
he visto algunos ejemplos de inyeccion de codigo hechos en lenguajes de alto nivel como C para interceptar algunas apis o para hacer que el programa victima haga algo para lo que no fue programado, y vi que usan "creo que usan" los codigo de las instrucciones de asm pero cuando se cargan en memoria por mencionar algunos esta el RET creo que su codigo en memoria era C3 o el JMP que tiene varios codigos pero el que vi era E9 , en esos documentos mencionaban algo de opcodes googleando di  con http://es.wikipedia.org/wiki/C%C3%B3digo_de_operaci%C3%B3n

segui googleando pero no encuentro mas de esos valores-codigos.
¿saben donde podria obtener una lista de esos valores-codigos y su sintaxis?
¿me recomiendan algun documento para aprender sobre este tema?
-lo busque como "lista de opcodes"
¿esta bien como lo estoy buscando?
4  Programación / Programación Visual Basic / [RESUELTO]¿como comprobar varios resultados en un solo valor? - GetFileAttribute en: 23 Agosto 2011, 06:58 am
el api GetFileAttributes en un solo resultado devuelve todos los atributos de un archivo ejem : +s +r / +s +r +h o lo que sea, para comprobar cada atributo que devuelva en ese UNICO resultado lo hago de esta forma

Código:
if res = FILE_ATTRIBUTES_SYSTEM then atributos = atributos & "+S "
if res = FILE_ATTRIBUTES_HIDDEN then atributos = atributos & "+H"
if res = FILE_ATTRIBUTES_READONLY + FILE_SYSTEMHIDDEN then atributos = atributos & "+R +H "[

weno y asi se hace todo como en 30 lineas :S, ¿habra alguna manera mas simplificada de comprobar sin tanto codigo? ¿podrian dar alguna explicacion? o url donde expliquen.
5  Programación / Programación General / duda sobre apis de windows de 32 bits en: 17 Agosto 2011, 18:36 pm
estoy haciendo un TREMENDO copy/paste de las apis de windows que hay en la web de la msdn para imprimirlo, muchas de las apis que estoy copiando ya son conocidas y funcionan bien en windows xp de 32 bits (por ejemplo): kernel32, user32 gdi32 etc,  ¿saben si estas apis funcionaran en los windows de 64 bits? o ¿tendran algun reemplazo en esos sistemas de 64 bits? , es que quiero que mis aplicaciones corran sin problemas en todos los windows y no se si deba buscar buscar funciones especificas para sistemas de 64 bits.

-ese numero 32 que va en las DLL :kernel32 user32 supongo  indica el tipo de sistema si es 32 o 64 bits ¿o no?

edicion:
¿que pasara con las aplicaciones ya hechas y que funcionan bien en windows xp de 32 bits si las ejecuto en windows xp de 64 bits? ¿fallaran?
6  Seguridad Informática / Análisis y Diseño de Malware / ¿alguna forma de modificar el resultado de una ejecucion? en: 1 Agosto 2011, 17:38 pm
hola no se bien como llamar esto asi que puse ese titulo que es lo unico que se me ocurrio, para aclarar mas lo que quiero hacer expongo un caso:

tengo un codigo en vb6 que al ingresar un numero, este lo evalua si es menor a 500 muestra el mensaje "Fallido", sino muestra "Exito".

Código
  1. Private Sub Command1_Click()
  2.    Dim Numero As Long
  3.    Numero = Val(Text1.Text)
  4.    If Numero < 500 Then
  5.        MsgBox "Fallido", vbCritical, ""
  6.        Exit Sub
  7.    End If
  8.    MsgBox "Exito", vbInformation, ""
  9. End Sub

quisiera detectar la ejecucion de esa rutina y de alguna manera interrumpirla y obtener la direccion donde se estaba realizando esa ejecucion para redireccionar la ejecucion y se salte ese If y el resultado sea siempre exito, en codigo seria asi:

Código
  1. Private Sub Command1_Click()
  2.    Dim Numero As Long
  3.    Numero = Val(Text1.Text)
  4.    MsgBox "Exito", vbInformation, ""
  5. End Sub

weno este es solo un ejemplo para que quede claro lo que quiero hacer, porque en realidad quisiera aplicar esto para haer malwares que por ejemplo detengan una ejecucion y despues de un rato continue, o cambiar la ejecucion del explorer.exe para evitar que el usuario cree una carpeta o copie un archivo, y asi muchas cosas se me ocurren.
¿tendran algun enlace sobre el tema? o ¿que apis debo buscar?, lo que sea se los agradecere.
7  Programación / Programación General / ¿alguna forma de ordenar codigos escritos en delphi 7? en: 20 Julio 2011, 23:01 pm
en VB6 al escribir algo como:

Código:
suma=1+3+5

despues de pasar a la siguiente linea con enter, VB6 se encarga automaticamente de ordenar el codigo y lo anterior lo dejaria asi:

Código:
suma = 1 + 3 + 5

mientras q en delphi se queda igual.

o cuando quiero usar alguna propiedad de un objeto en VB6 por ejemplo escribo:

Código:
Form1.Cap

luego VB6 me muestra la lista de propiedades que coninciden con ese texto escrito "Cap" y nada mas pulso TAB y pues se completa la linea de codigo:

Código:
Form1.Caption

O si por ejem escribo una nombre  de una funcion en minusculas/mayusculas:

Código:
messAgebox

VB6 lo pone tal cual es:

Código:
MessageBox


no se si se pueda hacer algo asi en delphi 7, es decir quizas agregarle algun programa o configurar algo, he estado viendo las opciones del entorno que esta en ingles y no encuentro una solucion, o kizas sepan algun enlace de algun otro delphi mas moderno que traiga esas opciones para "ordenar codigo automatico" o no se como llamar a esto que hace VB6, pero que hace la escritura de codigo bastante facil, comoda y facilita la lectura del codigo.
8  Programación / Programación Visual Basic / otra forma de llamar a una funcion de una DLL en: 12 Julio 2011, 16:33 pm
consiste en escribir una funcion de usuario publica con los parametros que tendria la funcion api, luego  sobreescribir el inicio de esa funcion con la instruccion en ensablador "jmp" (salto a una direccion) para saltar a una direccion que seria la direccion de la api que queremos llamar, luego al llamar a esa funcion de usuario ejecutariamos la api, ejemplo de como llamar a ShowWindow sin haberlo puesto en la sección Declaraciones:

en un form1: (abrir el notepad para ocultarlo y volverlo visble)

form1
Código
  1. 'form1
  2. 'agregar controles:
  3. '1 command1
  4. '1 command2
  5.  
  6. Option Explicit
  7.  
  8.  
  9. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  10.  
  11. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  12.  
  13. Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  14.  
  15. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
  16.  
  17. Private Declare Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
  18.  
  19.  
  20.  
  21. Dim hModule As Long
  22. Dim DirProc As Long
  23. Dim DirMiFun As Long
  24. Dim Codigo(1 To 20) As Byte
  25. Dim Distancia As Long
  26. Dim ViejaProte As Long
  27.  
  28. Const jmp = &HE9
  29.  
  30. Const PAGE_EXECUTE_READWRITE As Long = &H40
  31.  
  32.  
  33. Private Sub Command1_Click()
  34.    Dim hwnd As Long
  35.    hwnd = FindWindow("notepad", vbNullString)
  36.    If hwnd = 0 Then
  37.        MsgBox "No se encontro el notepad", vbCritical, ""
  38.        Exit Sub
  39.    Else
  40.        Call MostrarVentana(hwnd, 5)
  41.    End If
  42. End Sub
  43.  
  44. Private Sub Command2_Click()
  45.    Dim hwnd As Long
  46.    hwnd = FindWindow("notepad", vbNullString)
  47.    If hwnd = 0 Then
  48.        MsgBox "No se encontro el notepad", vbCritical, ""
  49.        Exit Sub
  50.    Else
  51.        Call MostrarVentana(hwnd, 0)
  52.    End If
  53. End Sub
  54.  
  55. Private Sub Form_Load()
  56.    hModule = GetModuleHandle("user32")
  57.    DirProc = GetProcAddress(hModule, "ShowWindow")
  58.    DirMiFun = ObtenerMiDir(AddressOf MostrarVentana)
  59.    Distancia = DirProc - DirMiFun - Len(Distancia) - 1
  60.    'intenta cambiar los atributos de esa zona de memoria para sobreescribirlo
  61.    'si se sobreescribe sin cambiar los atributos la aplicacion se cerrara
  62.    If VirtualProtect(ByVal DirMiFun, 1 + Len(Distancia), PAGE_EXECUTE_READWRITE, ViejaProte) <> 0 Then
  63.        Codigo(1) = jmp
  64.        Call CopyMemory(Codigo(2), Distancia, Len(Distancia))
  65.        Call CopyMemory(ByVal DirMiFun, Codigo(1), 1 + Len(Distancia))
  66.        MsgBox "Listo", vbInformation, ""
  67.    Else
  68.        MsgBox "No se pudo cambiar los atributos de la region de memoria: " & DirMiFun & " (MostrarVentana)", vbCritical, ""
  69.    End If
  70.    Command1.Caption = "notepad visible"
  71.    Command2.Caption = "notepad oculto"
  72. End Sub
  73.  
  74. Private Function ObtenerMiDir(FunAddress As Long) As Long
  75.    ObtenerMiDir = FunAddress
  76. End Function
  77.  


module1.bas
Código
  1. Option Explicit
  2.  
  3.  
  4. Public Function MostrarVentana(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  5.    'esto es nada mas para que tenga un sitio donde sobreescribir, por
  6.    'seguridad sin que vaya afectar a otras instrucciones
  7.    Dim algo As Boolean
  8.    algo = True
  9.    algo = False
  10. End Function
  11.  


edit:
para que funcione compilen el proyecto.
9  Programación / Programación Visual Basic / [DUDA] paso por valor o por referencia (byval/ byref) en: 10 Julio 2011, 02:32 am
en varios codigos he visto que al momento de llamar a una funcion los parametros se pasan de manera distinta que la de su declaracion, si un `parametros esta como byref al llamar lo pasan como byval:


Código
  1. 'en el parametro buffer esta sin nada (por ahi lei que si no se indica es ByRef por defecto)
  2.  
  3.  
  4. Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  5.  
  6.  
  7.  


Código
  1. 'pasa el parametro buffer como byval
  2. Dim Buffer As String
  3. Buffer = Space(5000)
  4. Call ReadProcessMemory(hProcess, Direccion, ByVal Buffer, Len(Buffer), BytesLeidos)

otra api:

Código
  1. 'ambas apis son por valor
  2. Private Declare Function FindWindow Lib "user32" _
  3.    Alias "FindWindowA" ( _
  4.        ByVal lpClassName As String, _
  5.        ByVal lpWindowName As String) As Long

Código
  1. 'pasa el windowname - titulo sin nada (por defecto seria ByRef)
  2.    Dim Titulo As String
  3.    Titulo = "Google"
  4.    Call FindWindow(vbNullString, Titulo)

weno al final cual es el que vale? el ByVal/ByRef indicado en la declaracion de funcion o el ByVal/ByRef usado al momento de llamar a esa funcion?
si pudieran explicarme mejor esto del ByVal/ByRef se los agradeceria .

me lei :
http://foro.elhacker.net/programacion_vb/memoria_en_vb-t114052.0.html
no me kedo muy claro.
10  Programación / Programación General / ¿hay alguna web que contenga las APIS de windows para delphi? en: 8 Julio 2011, 19:00 pm
hola estoy practicando delphi (el entorno : delphi 7) y pues queria centrarme en el manejo de las apis de windows pero hay poquisima informacion sobre esto , no se si quiizas alguien conosca alguna web/documento donde las expongan (el prototipo algun ejemplo, como declararlas) algo asi como la web y programa "apiguide" de visual basic 6.0 que tiene ufff como 900 apis.
Páginas: [1] 2 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines