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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Generic Sever Editor Class [SRC]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Generic Sever Editor Class [SRC]  (Leído 8,507 veces)
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Generic Sever Editor Class [SRC]
« en: 19 Septiembre 2008, 18:28 pm »

Bueno me harte de que pregunten esto un millon de veces, aca les dejo un codigo super simple para leer y escribir datos al final de un EXE. Creditos a E0N por la funcion para calcular el EOF

Clase:

Código
  1. '---------------------------------------------------------------------------------------
  2. ' Module      : cEditSvr
  3. ' DateTime    : 19/09/2008 13:23
  4. ' Author      : Cobein
  5. ' Mail        : cobein27@hotmail.com
  6. ' WebPage     : http://www.advancevb.com.ar
  7. ' Purpose     : Read Write data at EOF
  8. ' Usage       : At your own risk
  9. ' Requirements: None
  10. ' Distribution: You can freely use this code in your own
  11. '               applications, but you may not reproduce
  12. '               or publish this code on any web site,
  13. '               online service, or distribute as source
  14. '               on any media without express permission.
  15. '
  16. ' History     : 19/09/2008 First Cut....................................................
  17. '---------------------------------------------------------------------------------------
  18. Option Explicit
  19.  
  20. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
  21.  
  22. Private c_pBag      As New PropertyBag
  23. Private c_sFile     As String
  24. Private c_lEOF      As Long
  25. Public c_bHasData  As Boolean
  26.  
  27. '---------------------------------------------------------------------------------------
  28. ' Procedure : GetEOF
  29. ' Author    : E0N
  30. ' Purpose   : Calculate EOF
  31. '---------------------------------------------------------------------------------------
  32. Private Function GetEOF(sPath As String) As Long
  33.    Dim vbData() As Byte
  34.    Dim PE As Long, NumberOfSections As Integer
  35.    Dim BeginLastSection As Long
  36.    Dim RawSize As Long, RawOffset As Long
  37.  
  38.    Open sPath For Binary As #1
  39.        ReDim vbData(LOF(1) - 1)
  40.        Get #1, , vbData
  41.    Close #1
  42.  
  43.    Call CopyMemory(PE, vbData(&H3C), 4)
  44.    Call CopyMemory(NumberOfSections, vbData(PE + &H6), 2)
  45.    BeginLastSection = PE + &HF8 + ((NumberOfSections - 1) * &H28)
  46.    Call CopyMemory(RawSize, vbData(BeginLastSection + 16), 4)
  47.    Call CopyMemory(RawOffset, vbData(BeginLastSection + 20), 4)
  48.    GetEOF = RawSize + RawOffset
  49. End Function
  50.  
  51. Public Function ExeFile(sPath As String) As Boolean
  52.    c_sFile = sPath
  53.    c_lEOF = GetEOF(c_sFile)
  54.  
  55.    If Not FileLen(c_sFile) = c_lEOF Then
  56.        c_bHasData = True
  57.  
  58.        Dim vbData() As Byte
  59.  
  60.        Open c_sFile For Binary As #1
  61.        ReDim vbData(LOF(1) - c_lEOF - 1)
  62.        Seek #1, c_lEOF + 1
  63.        Get #1, , vbData
  64.        Close #1
  65.        '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  66.        'At this point you can Decrypt the byte array [vbData]
  67.        '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  68.        Set c_pBag = New PropertyBag
  69.        c_pBag.Contents = vbData
  70.    End If
  71.  
  72. End Function
  73.  
  74. Public Sub WriteProp(sName As String, vVal As Variant)
  75.    c_pBag.WriteProperty sName, vVal
  76. End Sub
  77.  
  78. Public Function ReadProp(sName As String) As Variant
  79.    ReadProp = c_pBag.ReadProperty(sName)
  80. End Function
  81.  
  82. Public Function WriteData(sDstFile As String) As Boolean
  83.    Dim vbData() As Byte
  84.  
  85.    Open c_sFile For Binary Access Read As #1
  86.    ReDim vbData(LOF(1) - 1)
  87.    Get #1, , vbData
  88.    Close #1
  89.  
  90.    Open sDstFile For Binary Access Write As #1
  91.    Put #1, , vbData
  92.    vbData = c_pBag.Contents
  93.    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  94.    'At this point you can Encrypt the byte array [vbData]
  95.    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  96.    Put #1, , vbData
  97.    Close #1
  98.  
  99. End Function
  100.  

Como llamarlo

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.  
  5.    Dim c As New cEditSvr
  6.    c.ExeFile "c:\proyecto1.exe"
  7.    c.WriteProp "IP", "123.123.123.123"
  8.    c.WriteProp "Port", 1234
  9.    c.WriteData "c:\test.exe"
  10.  
  11.  
  12.    Set c = New cEditSvr
  13.    c.ExeFile "c:\test.exe"
  14.    Debug.Print c.ReadProp("IP")
  15.    Debug.Print c.ReadProp("Port")
  16. End Sub
  17.  
  18.  


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Generic Sever Editor Class [SRC]
« Respuesta #1 en: 19 Septiembre 2008, 18:56 pm »

Muy bueno Cobein, yo uso el Metodo Append sin PE ni na, con este queda mas pofesionar :laugh:

Saludos :D

PD: Que es eso de PropertyBag :-\??


En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #2 en: 19 Septiembre 2008, 19:05 pm »

Interesante para aprender y muy útil, me lo guardo en mi biblioteca de códigos. Gracias cobein ;D ;D ;D ;D ;D
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #3 en: 19 Septiembre 2008, 19:08 pm »

El propertyBag lo uso para empaquetar y desempaquetar los datos, de esa manera podes agregar la cantidad de propiedades/valores que quieras. El ejemplo tiene simplemente 2 pero se pueden seguir agregando las que sea.

Importante:Si alguno usa un code para modificar el EOF no use esto!

En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Generic Sever Editor Class [SRC]
« Respuesta #4 en: 19 Septiembre 2008, 19:56 pm »

Che te quedo buenisimo... Un saludo
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #5 en: 19 Septiembre 2008, 20:29 pm »

El aporte está muy bien, cobein. Al final conseguí solucionar el problema que tenía con este tema.

Saludos.
En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #6 en: 19 Septiembre 2008, 21:03 pm »

Menos mal que no empezé a hacerlo yo porque dsde hace ratico que vi un post con una duda dije "Voy a hacer un ejemplo..!" Pero contigo no se puede esperar ni 1 hora :xD
En línea

s E t H

Desconectado Desconectado

Mensajes: 152


Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.


Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #7 en: 20 Septiembre 2008, 03:03 am »

donde declaras PropertyBag??
En línea

‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #8 en: 20 Septiembre 2008, 04:24 am »

me encanto, yo usaba uno que habia publicado Hendrix (por cierto, hace tiempo no veo posts de el), y es mas corto...
pero este esta bien, para aprender otras cositas =D
En línea

‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Generic Sever Editor Class [SRC]
« Respuesta #9 en: 20 Septiembre 2008, 04:37 am »

el PropertyBag no se declara, se crea un objeto referenciado hacia el...
Código
  1. Set c_pBag = New PropertyBag
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

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