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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68
641  Programación / Programación Visual Basic / Re: Como saber si una carpeta esta vacia en: 7 Abril 2009, 21:26 pm
Igual como escribirias y leerias cualquier archivo

Código
  1.  
  2.  
  3. '---------------------------------------------------------------------------------------
  4. ' Procedimiento : ReadFile
  5. ' Autor         : Karcrack
  6. ' Fecha         : 07/04/2009
  7. ' Parametro(s)  : sPath -> La ruta del fichero
  8. ' Return        : Devuelve un Byte array con los bytes del fichero
  9. '---------------------------------------------------------------------------------------
  10.  
  11. Private Function ReadFile(ByVal sPath As String) As Byte()
  12.    Dim bvTmp()         As Byte
  13.  
  14.    Open sPath For Binary As #1
  15.        ReDim bvTmp(0 To LOF(1) - 1)
  16.        Get #1, , bvTmp
  17.    Close #1
  18.  
  19.    ReadFile = bvTmp
  20. End Function
  21.  
  22.  
  23. '---------------------------------------------------------------------------------------
  24. ' Procedimiento : SaveFile
  25. ' Autor         : Karcrack
  26. ' Fecha         : 07/04/2009
  27. ' Parametro(s)  : bvData() -> Array de datos
  28. '                 sPath    -> Ruta de guardado
  29. '---------------------------------------------------------------------------------------
  30.  
  31. Private Sub SaveFile(ByRef bvData() As Byte, ByVal sPath As String)
  32.    Open sPath For Binary As #1
  33.        Put #1, , bvData
  34.    Close #1
  35. End Sub
  36.  

y para detectarlos

http://foro.elhacker.net/programacion_vb/source_detectar_unidades_extraibles_usb-t214774.0.html;msg1030424
642  Programación / Programación Visual Basic / Re: Como saber si una carpeta esta vacia en: 7 Abril 2009, 21:09 pm
Le pasas C:\Informacion\CarpetaDatos , :xD no se me ocurrio hacerlo con dir :P
643  Programación / Programación Visual Basic / Re: Como saber si una carpeta esta vacia en: 7 Abril 2009, 20:13 pm
Podrias ver con FindFirstFile si hay archivos o carpetas en la ruta , dame unos minutos y te hago un source.

EDIT:

Lo prometido es deuda , la función es 100% funcional , el parametro que hay que pasarle es lla ruta de la carpeta sin \ ni nada adelante por ejemplo para revisar C:\ ponemos C: .

Código
  1. Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  2. Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  3. Private Type FILETIME
  4.    dwLowDateTime As Long
  5.    dwHighDateTime As Long
  6. End Type
  7. Private Type WIN32_FIND_DATA
  8.    dwFileAttributes As Long
  9.    ftCreationTime As FILETIME
  10.    ftLastAccessTime As FILETIME
  11.    ftLastWriteTime As FILETIME
  12.    nFileSizeHigh As Long
  13.    nFileSizeLow As Long
  14.    dwReserved0 As Long
  15.    dwReserved1 As Long
  16.    cFileName As String * 260
  17.    cAlternate As String * 14
  18. End Type
  19. Dim Find As WIN32_FIND_DATA
  20. Dim HandleBusqueda As Long
  21.  
  22. Public Function CapetaVacia(Ruta As String) As Boolean
  23. HandleBusqueda = FindFirstFile(Ruta & "\*", Find)
  24. FindNextFile HandleBusqueda, Find
  25. If Left(Find.cFileName, 2) = ".." Then
  26. FindNextFile HandleBusqueda, Find
  27. Else
  28. End If
  29. If Left(Find.cFileName, 2) = ".." Then
  30. CapetaVacia = True
  31. Else
  32. CapetaVacia = False
  33. End If
  34. End Function
644  Programación / ASM / Re: Pequeño visor PE en: 6 Abril 2009, 23:07 pm
Ordenando el codigo de a poco.

Código
  1. format pe console
  2. include 'win32ax.inc'
  3. .data
  4. Espacio equ 13,10,0   ;Para pasar a una nueva linea.
  5. RutaArchivo rb MAX_PATH   ;Variable para guardar la ruta de el archivo
  6. PunteroPEheader dd ? ; Puntero de el Pe header
  7. Logo db '                      ===================================',13,10          ; LOGO PRINCIPAL
  8.     db '                      =         PE visor by YST         =',13,10
  9.     db '                      ===================================',13,10,0
  10.  
  11. LogoGeneral db '                      ===================================',13,10          ; LOGO GENERAL
  12.            db '                      =           General               =',13,10
  13.            db '                      ===================================',13,10,0
  14.  
  15. LogoSecciones db '                      ===================================',13,10
  16.              db '                      =           Secciones             =',13,10     ;LOGO DE INFO DE LAS SECCIONES
  17.              db '                      ===================================',13,10,0
  18.  
  19. LogoExport    db '                      ===================================',13,10
  20.              db '                      =           Export data           =',13,10     ;LOGO DE INFO DE el Export data
  21.              db '                      ===================================',13,10,0
  22. FHandle dd ?  ; MZ de el archivo
  23. .code
  24. start:
  25. invoke system,"color 3" ;Ponemos el color de texto
  26. invoke printf,Logo      ;Imprimimos el logo
  27. invoke printf,Espacio   ;Ponemos dos nuevas lineas.
  28. invoke printf,Espacio
  29.  
  30. invoke printf,"Inserte la ruta de el archivo a examinar:"   ; Preguntamos el archivo
  31. invoke printf,Espacio
  32. invoke scanf,"%s",RutaArchivo  ;Obtenemos la ruta de el archivo
  33.  
  34. invoke LoadLibrary,RutaArchivo ;Cargamos el archivo
  35. .if eax = 0     ; Si hay error
  36. invoke printf,"Hubo un error al cargar el archivo." ;Mostramos el error .
  37. invoke ExitProcess,0 ; Nos salimos.
  38. .else ; De lo contrario
  39. .if  word[eax] = "MZ" ; Si los primeros 2 bytes son igual a MZ
  40. mov [FHandle],eax      ; Guardamos el MZ en FHandle
  41. .else  ; De lo contrario
  42. invoke printf,"Ingrese un archivo valido." ;Mostramos el error .
  43. invoke ExitProcess,0 ; Nos salimos.
  44. .endif ; Terminamos los if
  45. .endif
  46.  
  47. add eax,dword[eax+03ch] ; Guardamos en eax la direccion de el PE header
  48. .if  word[eax] = "PE" ; Si los primeros 2 bytes son igual a PE
  49. mov [PunteroPEheader],eax      ; Guardamos el puntero de el PE header en PunteroPEheader
  50. .else  ; De lo contrario
  51. invoke printf,"No se a detectado PE header." ;Mostramos el error .
  52. invoke ExitProcess,0 ; Nos salimos.
  53. .endif ; Terminamos los if
  54. .endif
  55.  
  56. invoke printf,Espacio ; Pasamos a la siguiente linea.
  57. invoke printf,Espacio ; Pasamos a la siguiente linea.
  58. invoke printf,LogoGeneral ;Imprimimos el logo de la informacion general.
  59. invoke printf,Espacio ; Pasamos a la siguiente linea.
  60. invoke printf,Espacio ; Pasamos a la siguiente linea.
  61.  
  62. mov ebx,[FHandle]
  63. mov ebx,dword[ebx+03ch]
  64. invoke printf,"La posicion de el PE header es : 0x%x" ,ebx    ;Mostramos la direccion de el PE header
  65. invoke printf,Espacio ; Pasamos a la siguiente linea.
  66.  
  67. add ebx,[FHandle]; Le sumamos a la posicion de el PE header el MZ para pasar a el puntero de el PE header
  68. invoke printf,"TimeDateStamp: 0x%x " ,dword[ebx+08h] ; Imprimimo el TimeDateStamp
  69. invoke printf,Espacio ; Pasamos a la siguiente linea.
  70.  
  71.  
  72.  
  73. invoke printf,"SizeOfCode: 0x%x " ,dword[ebx+1ch] ; Imprimimo el SizeOfCode
  74. invoke printf,Espacio ; Pasamos a la siguiente linea.
  75.  
  76.  
  77. invoke printf,"AddressOfEntrPoint: 0x%x " ,dword[ebx+28h] ; Imprimimo el AddressOfEntrPoint
  78. invoke printf,Espacio ; Pasamos a la siguiente linea.
  79.  
  80.  
  81. invoke printf,"ImageBase: 0x%x " ,dword[ebx+34h] ; Imprimimo el ImageBase
  82. invoke printf,Espacio ; Pasamos a la siguiente linea.
  83.  
  84.  
  85. invoke printf,"SizeOfImage: 0x%x " ,dword[ebx+50h] ; Imprimimo el SizeOfImage
  86. invoke printf,Espacio ; Pasamos a la siguiente linea.
  87.  
  88. invoke printf,"SizeOfHeaders: 0x%x " ,dword[ebx+54h] ; Imprimimo el SizeOfHeaders
  89. invoke printf,Espacio ; Pasamos a la siguiente linea.
  90.  
  91.  
  92. invoke printf,"CheckSum: 0x%x " ,dword[ebx+58h] ; Imprimimo el CheckSum
  93. invoke printf,Espacio ; Pasamos a la siguiente linea.
  94.  
  95. invoke printf,"Subsystem: "       ;Imprimimos el Subsystem
  96. .if dword[ebx+5Ch] = 2h  ;SI es GUI
  97. invoke printf,"Windows GUI"    ; Imprimimos   Windows GUI
  98. .else             ; De lo contrario es CUI (Consola)
  99. invoke printf,"Windows CUI"  ; Imprimimos   Windows CUI
  100. .endif        ;Terminamos el if
  101. invoke printf,Espacio ; Pasamos a la siguiente linea.
  102. stdcall EOFExtraDataExtract,[FHandle]
  103. invoke printf,"Posicion de el EOF: 0x%x",eax       ;Imprimimos la posicion de el EOF
  104. invoke printf,Espacio ; Pasamos a la siguiente linea.
  105.  
  106. invoke printf,Espacio ; Pasamos a la siguiente linea.
  107. invoke printf,Espacio ; Pasamos a la siguiente linea.
  108. invoke printf,LogoSecciones ;Imprimimos el logo de la informacion de las secciones.
  109. invoke printf,Espacio ; Pasamos a la siguiente linea.
  110. invoke printf,Espacio ; Pasamos a la siguiente linea.
  111.  
  112. mov esi,[PunteroPEheader]      ;Movemos el puntero de el PE Header a esi.
  113. movzx ebx,word[esi+06h]  ; Guardamos la cantidad de secciones en ebx.
  114.  
  115.  
  116.  
  117. invoke printf,"Numero de secciones: %d",ebx   ;Imprimimos la cantidad de secciones.
  118. invoke printf,Espacio ; Pasamos a la siguiente linea.
  119. invoke printf,Espacio ; Pasamos a la siguiente linea.
  120.  
  121. .bucleImprimeSecciones: ; Bucle que imprime secciones
  122. dec ebx    ;Les restamos uno a ebx
  123. mov eax,28h       ;Hacemos que eax sea igual a $28
  124. mul ebx           ;Multiplicamos ebx
  125. add eax,0xf8      ;Le sumamos $F8 ( $F8 = START OF SECTION TABLE )
  126. add eax,esi       ;Le agregamos al resultado de la multiplicacion el puntero de el PE header
  127. mov edi,eax       ;Guardamos eax en edi
  128. invoke printf,"Name: %s",edi  ;Imprimimos el nombre de la sección.
  129. invoke printf,Espacio ; Pasamos a la siguiente linea.
  130. invoke printf,"virtual address: 0x%x",dword[edi+0ch]  ;Imprimimos el virtual address
  131. invoke printf,Espacio  ; Pasamos a la siguiente linea
  132. invoke printf,"VirtualSize: 0x%x",dword[edi+08h]        ;Imprimimos el VirtualSize
  133. invoke printf,Espacio  ; Pasamos a la siguiente linea
  134. invoke printf,"SizeOfRawData: 0x%x",dword[edi+10h] ;  Imprimimos el SizeOfRawData
  135. invoke printf,Espacio  ; Pasamos a la siguiente linea
  136. invoke printf,"pointerToRawData : 0x%x",dword[edi+14h]   ;Imprimimos el pointerToRawData
  137. invoke printf,Espacio  ; Pasamos a la siguiente linea
  138. invoke printf,"Characteristics: 0x%x",dword[edi+24h] ;Imprimimos las Characteristics
  139. invoke printf,Espacio  ; Pasamos a la siguiente linea
  140. invoke printf,Espacio  ; Pasamos a la siguiente linea
  141. invoke printf,Espacio  ; Pasamos a la siguiente linea
  142.  
  143. cmp ebx,0
  144. jne .bucleImprimeSecciones   ; Si no se an imprimido todas las secciones saltamos a lña etiqueta .bucleImprimeSecciones .
  145.  
  146. invoke printf,Espacio ; Pasamos a la siguiente linea.
  147. invoke printf,Espacio ; Pasamos a la siguiente linea.
  148. invoke printf,LogoExport   ;Imprimimos el logo de la informacion de el export data.
  149. invoke printf,Espacio ; Pasamos a la siguiente linea.
  150. invoke printf,Espacio ; Pasamos a la siguiente linea.
  151.  
  152. .if dword[esi+078h] = 0    ; Si no hay export data
  153. invoke printf,"No se exporta ninguna funcion."
  154. invoke printf,Espacio ; Pasamos a la siguiente linea.
  155. .else
  156. mov ebx,dword[esi+078h]
  157. add ebx,[FHandle]
  158. invoke printf,"Cantidad de funciones exportadas: %d",dword[ebx+18h]    ;Imprimimo la cantidad de funciones exportadas.
  159. invoke printf,Espacio ; Pasamos a la siguiente linea.          +
  160. mov edi,dword[ebx+20h]   ;AddressOfNames
  161. add edi,[FHandle]
  162. mov ebx,dword[ebx+18h]   ;Numero de exports
  163. invoke printf,"Funciones exportadas: "
  164.  invoke printf,Espacio
  165. .bucleExportData:           ;Bucle para imprimir la export data
  166. dec ebx
  167. mov        eax, [edi + ebx * 4]
  168. add eax,[FHandle]
  169. invoke printf,"-%s",eax
  170.  invoke printf,Espacio
  171.  cmp ebx,0
  172.  jne .bucleExportData  ;Si no se an imprimido todas seguimos
  173. .endif
  174.  
  175. invoke system,"pause"
  176. invoke ExitProcess,0
  177.  
  178. proc EOFExtraDataExtract,FHandle ;Funcion para extraer el EOF
  179. push esi  ebx
  180. mov eax,[FHandle]
  181. mov esi,dword[eax+03ch] ;Offset to start of PE header
  182. add esi,eax
  183. movzx ebx, word[esi+06h] ;Number Of Sections
  184. dec ebx
  185. mov eax,28h
  186. mul ebx
  187. add esi,0xf8 ;START OF SECTION TABLE
  188. add esi,eax
  189. mov eax,dword[esi+10h] ;SizeOfRawData
  190. add eax,dword[esi+14h]  ;pointerToRawData
  191. pop ebx esi
  192. ret
  193. endp
  194.  
  195.  
  196. .end start
  197. section '.reloc' fixups data discardable
645  Programación / ASM / Re: Pequeño visor PE en: 6 Abril 2009, 19:56 pm
Muy bueno lo que andas haciendo con este asm, sigue así  :)

Muchas gracias :D , en unos minutos pasare el code en limpio.
646  Programación / PHP / Re: Variables de una web en: 6 Abril 2009, 18:37 pm
http://www.w3schools.com/PHP/php_get.asp revisa eso seguro que te sirve.
647  Programación / ASM / Re: Pequeño visor PE en: 6 Abril 2009, 18:22 pm
Actualizado ;D

Ahora estoy haciendo para que ponga las funciones importadas , si alguien tiene alguna idea que se le puede agregar la puede decir.
648  Programación / ASM / SRCs de YST. en: 6 Abril 2009, 03:44 am
Hola , basado en el visor PE de novirusthanks.org hice un modesto visor PE
Código
  1. format pe console
  2. Espacio equ 13,10,0
  3. include 'win32ax.inc'
  4. .data
  5. Logo db '===================================',13,10
  6.     db '= Humilde visor PE by YST         =',13,10
  7.     db '===================================',13,10,0
  8. RutaArch  rb MAX_PATH
  9. HA dd ?
  10. bEscritos dd ?
  11. Log dd ?
  12. CrearLOG rb 10
  13. .code
  14. start:
  15. invoke printf,Logo
  16. invoke printf,Espacio
  17. invoke printf,"Ponga la ruta a escanear: "
  18. invoke printf,Espacio
  19. invoke scanf,"%s",RutaArch
  20.  
  21. invoke printf,Espacio
  22. invoke printf,Espacio
  23.  
  24. invoke LoadLibrary,RutaArch
  25. stdcall Visualisar,eax
  26. invoke ExitProcess,0
  27. proc Visualisar,FHandle
  28. push edi esi  ebx
  29. .if [FHandle] = NULL
  30. jmp .error
  31. .endif
  32.  
  33.  
  34. mov eax,[FHandle]
  35. cmp word[eax],"MZ"
  36. jne .error
  37.  
  38. mov eax,[FHandle]
  39. mov esi,dword[eax+03ch] ;Offset to start of PE header
  40. invoke printf,"%s","start of PE header: "
  41.  
  42. invoke printf,"0x%x",esi
  43. invoke printf,"%s",Espacio
  44. add esi,[FHandle]
  45. movzx ebx, word[esi+06h] ;Number Of Sections
  46. invoke printf,"%s","TimeDateStamp: "
  47. invoke printf,"0x%x",dword[esi+8h]
  48. invoke printf,"%s",Espacio
  49.  
  50. invoke printf,"%s","SizeOfCode: "
  51. invoke printf,"0x%x",dword[esi+1ch]
  52. invoke printf,"%s",Espacio
  53. invoke printf,"%s","Address Of Entry Point: "
  54. invoke printf,"0x%x",dword[esi+28h]
  55. invoke printf,"%s",Espacio
  56. invoke printf,"%s","ImageBase: "
  57. invoke printf,"0x%x",dword[esi+34h]
  58. invoke printf,"%s",Espacio
  59.  
  60. invoke printf,"%s","SizeOfImage: "
  61. invoke printf,"0x%x",dword[esi+50h]
  62. invoke printf,"%s",Espacio
  63.  invoke printf,"%s","SizeOfHeaders : "
  64. invoke printf,"0x%x",dword[esi+54h]
  65. invoke printf,"%s",Espacio
  66.   invoke printf,"%s","CheckSum : "
  67. invoke printf,"0x%x",dword[esi+58h]
  68. invoke printf,"%s",Espacio
  69. invoke printf,"%s","Subsystem: "
  70. .if dword[esi+5Ch] = 2h
  71. invoke printf,"%s","Windows GUI"
  72. .else
  73.  invoke printf,"%s","Windows CUI"
  74.  .endif
  75.    invoke printf,"%s",Espacio
  76.  
  77.     invoke printf,"%s","Posicion de el EOF: "
  78.  stdcall EOFExtraDataExtract,[FHandle]
  79. invoke printf,"0x%x",eax
  80.   invoke printf,"%s",Espacio
  81. invoke printf,"%s",Espacio
  82.   invoke printf,"         SECTION'S         "
  83. invoke printf,"%s",Espacio
  84.   invoke printf,"%s",Espacio
  85.      invoke printf,"%s","Numero de secciones: "
  86.      invoke printf,"0x%x",ebx
  87.      invoke printf,"%s",Espacio
  88.   invoke printf,"%s",Espacio
  89. .bucle:
  90. dec ebx
  91. mov eax,28h
  92. mul ebx
  93. add eax,0xf8
  94. add eax,esi
  95. mov edi,eax
  96. invoke printf,"Name: "
  97. invoke printf,"%s",edi
  98. invoke printf,"%s",Espacio
  99. invoke printf,"virtual address: "
  100. invoke printf,"0x%x",dword[edi+0ch]
  101. invoke printf,"%s",Espacio
  102. invoke printf,"VirtualSize : "
  103. invoke printf,"0x%x",dword[edi+08h]
  104. invoke printf,"%s",Espacio
  105. invoke printf,"SizeOfRawData: "
  106. invoke printf,"0x%x",dword[edi+10h]
  107. invoke printf,"%s",Espacio
  108. invoke printf,"pointerToRawData : "
  109. invoke printf,"0x%x",dword[edi+14h]
  110. invoke printf,"%s",Espacio
  111. invoke printf,"Characteristics : "
  112. invoke printf,"0x%x",dword[edi+24h]
  113. invoke printf,"%s",Espacio
  114. invoke printf,"%s",Espacio
  115. invoke printf,"%s",Espacio
  116.  
  117. cmp ebx,0
  118. jne .bucle
  119.  
  120. mov eax,[FHandle]
  121. add eax,dword[eax+3ch]
  122. .if dword[eax+78h]  = 0
  123. .else
  124.   invoke printf,"         EXPORT         "
  125. invoke printf,"%s",Espacio
  126.   invoke printf,"%s",Espacio
  127. stdcall ListarFunciones,[FHandle]
  128. .endif
  129. ;ListarImport
  130. invoke printf,"     Import's "
  131. invoke printf,Espacio
  132. invoke printf,Espacio
  133. mov eax,[FHandle]
  134. add eax,dword[eax+3ch]
  135. .if dword[eax+80h]  = 0
  136. invoke printf,"No incluye librerias ( .dll ) ."
  137. .else
  138. stdcall ListarImport ,[FHandle]
  139. .endif
  140. pop ebx esi   edi
  141. ret
  142. .error:
  143. invoke printf,"Ingrese un archivo valido."
  144. pop ebx esi   edi
  145. ret
  146. endp
  147. proc EOFExtraDataExtract,FHandle
  148. push esi  ebx
  149. mov eax,[FHandle]
  150. mov esi,dword[eax+03ch] ;Offset to start of PE header
  151. add esi,eax
  152. movzx ebx, word[esi+06h] ;Number Of Sections
  153. dec ebx
  154. mov eax,28h
  155. mul ebx
  156. add esi,0xf8 ;START OF SECTION TABLE
  157. add esi,eax
  158. mov eax,dword[esi+10h] ;SizeOfRawData
  159. add eax,dword[esi+14h]  ;pointerToRawData
  160. pop ebx esi
  161. ret
  162. endp
  163. proc ListarFunciones,LibHandle
  164. locals
  165. DirPEHeader dd ?
  166. PunteroPEHeader dd ?
  167. RVAofExportDirectory   dd ?
  168. NumberOfNames dd ?
  169. AddressOfNames dd ?
  170. endl
  171. push ebx  edx  edi  ecx
  172. mov eax,[LibHandle]
  173. cmp eax,NULL
  174. je .Error
  175. push dword[eax + 03Ch]
  176. pop  [DirPEHeader]
  177. push [DirPEHeader]
  178. pop [PunteroPEHeader]
  179. add  [PunteroPEHeader],eax
  180. mov ebx,[PunteroPEHeader]
  181. cmp word[ebx],"PE"
  182. jne .Error
  183. push dword[ebx+078h]
  184. pop [RVAofExportDirectory]
  185. mov ebx, [RVAofExportDirectory]
  186. add ebx,eax
  187. push dword[ebx+018h]
  188. pop [NumberOfNames]
  189. mov edx,[NumberOfNames]
  190. push dword[ebx+20h]
  191. pop [AddressOfNames]
  192. mov ebx,[NumberOfNames]
  193. invoke printf,"%s" ,"Cantidad de funciones exportadas: "
  194. invoke printf,"%d",[NumberOfNames]
  195.  invoke printf,Espacio
  196.    invoke printf,Espacio
  197.        invoke printf,"Funciones exportadas: "
  198.            invoke printf,Espacio
  199. mov        edi, [AddressOfNames]
  200.    add        edi,[LibHandle]
  201. .bucle:
  202. dec ebx
  203. mov        eax, [edi + ebx * 4]
  204. add eax,[LibHandle]
  205. invoke printf,"-%s",eax
  206.  invoke printf,Espacio
  207.  cmp ebx,0
  208.  jne .bucle
  209. pop  ecx edi edx ebx
  210. ret
  211. .Error:
  212. ret
  213. endp
  214. proc ListarImport,FHandle
  215. push eax ebx edi
  216. mov ebx,[FHandle]
  217. add ebx,dword[ebx+03ch]
  218. mov ebx,dword[ebx+80h]
  219. add ebx,[FHandle]
  220. xor edi,edi
  221. .bucle:
  222. mov eax,dword[ebx+0ch]
  223. add eax,[FHandle]
  224. .if eax = [FHandle]
  225. invoke printf,"Cantidad de librerias importadas: %d",edi
  226. invoke printf,Espacio
  227. ret
  228. .else
  229. inc edi
  230. invoke printf,"%s",eax
  231. invoke printf,Espacio
  232. .endif
  233. add ebx,14h
  234. jmp .bucle
  235. pop edi ebx eax
  236. ret
  237. endp
  238.  
  239. .end start
649  Programación / Programación Visual Basic / Re: Ejecutar cosas solas desde vb en: 6 Abril 2009, 02:56 am
GetSystemTime
650  Programación / ASM / SRCs de YST. en: 6 Abril 2009, 02:46 am
Hola , viendo una funcion desarrollada por un user de este foro , decidi hacer la mia propia ya que encontre que esta funcion se podia mejorar bastante , bueno se las dejo , el parametro que hay que pasarle es el "MZ" de  el archivo , lo pueden cargar con LoadLibrary si se quiere  ;).

Código
  1. proc EOFExtraDataExtract,FHandle
  2. push esi  ebx
  3. mov eax,[FHandle]
  4. mov esi,dword[eax+03ch] ;Offset to start of PE header
  5. add esi,eax
  6. movzx ebx, word[esi+06h] ;Number Of Sections
  7. dec ebx
  8. mov eax,28h
  9. mul ebx
  10. add esi,0xf8 ;START OF SECTION TABLE
  11. add esi,eax
  12. mov eax,dword[esi+10h] ;SizeOfRawData
  13. add eax,dword[esi+14h]  ;pointerToRawData
  14. pop ebx esi
  15. ret
  16. endp
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines