2008 - Problem beim HexEditor coden

  • VB

  • Jannik
  • 3349 Aufrufe 34 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 2008 - Problem beim HexEditor coden

    Hallo Leute,

    ich habe folgendes Problem:

    Ich will eine Art Patch coden, der einen bestimmte Hexstringzeile einer zweiten Datei editiert. Also das man keinen HexEditor mehr dafür braucht.

    Bis dann,

    Jannik93
  • Du kannst binärdateien genauso öffnen wie ne txt datei. D.h. du musst in einem Hex editor den offset der Position rausfinden die du patchen willst. In deinem VB code musst du die exe die du patchen willst öffnen, an die offset position springen und den Wert dort neu setzen...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • danke zerd für deine Antwort, hat irgendjemand ein beispiel dafür?

    Edit:\\

    Ich komme nicht weiter bitte helft mir!

    So sieht mein Code bisher aus:

    Dim fs As New System.IO.FileStream("Test111.exe", IO.FileMode.Open, FileAccess.Write)
    Dim bw As New System.IO.BinaryWriter(fs)
    Dim i As Integer = FreeFile()
    bw.Seek("&H00000370", SeekOrigin.Begin)
    bw.Write("0x006E060D4A3EC7857CD30E0074657374")
    bw.Close()


    Ich sitze da schon eine Ewigkeit dran, bitte helft mir!

    Danke,

    Jannik93

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Jannik ()

  • Prinzipiell stimmt das schon so, VB spezifisch kann ich dir nicht helfen, weil ich kein VB spreche...

    Aber du kannst ja im Hex editor nachschauen was falsch läuft indem du nachschaust wie nach dem patch der hex wert aussieht. Ich vermute es liegt an dem Wert den du da eintragen willst. Es kann sein das du das Byteweise machen musst, d.h. du musst jedes byte welches geändert werden soll einzeln ändern...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • In der Richtung bin ich leider auch nicht so erfahren, aber müsste das nciht eigtl mit GET und PUT im Binärmodus gehen?

    Also mit GET auslesen:

    Quellcode

    1. open DATEI for binary as #x
    2. get #x, byte, variable
    3. close #x


    Oder mir PUT einfügen:

    Quellcode

    1. open DATEI for binary as #x
    2. put #x, byte, variable
    3. close #x


    Shadow
  • Dim bw As New System.IO.BinaryWriter(File.Open("AnyDVDtray.exe", FileMode.Open))
    bw.BaseStream.Position = "&H00000740"
    bw.Write(" HIDDEN TEST ")
    bw.Close()


    So hab ich das jetzt gemacht. Ein Problem habe ich aber jetzt noch damit: Ich kann nur ASCII schreiben und nicht Hex...
  • Der oben ist komplett, fehlt halt nur noch die Dekleration:

    Quellcode

    1. Dim bytePos As Byte
    2. Dim variable As Integer
    3. bytePos = 1
    4. variable = &H740
    5. FileOpen(1, "DATEI", OpenMode.Binary)
    6. FilePut(1, variable, bytePos)
    7. FileClose()


    Tata! :D

    Shadow
  • und bei byte kommt "&H00000740" hin ?

    Dim bytePos As Byte
    Dim variable As Integer

    bytePos = &H740
    variable = 006E060D4A3EC7857CD30E0074657374

    FileOpen(1, "DATEI", OpenMode.Binary)
    FilePut(1, variable, bytePos)
    FileClose()


    So? xD

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jannik ()

  • ist ja jetzt sowieso egal, ich habe nen anderen weg gefunden :)

    Dim bw As New System.IO.BinaryWriter(File.Open("Test.exe", FileMode.Open))
    Dim hex As Byte() = New Byte() {&H0, &H6E, &H6, &HD, &H4A, &H3E, &HC7, &H85, &H7C, &HD3, &HE, &H0, &H74, &H65, &H73, &H74}
    bw.BaseStream.Position = "&H00000740"
    bw.Write(Hex)
    bw.Close()
    Me.Close()


    Außerdem: Wieso wirst du mir nicht als Online angezeigt?
  • jo danke ich hab noch ein paar fragen an euch:

    - Ich gebe ein Wort in eine Textbox ein
    1. Wie kann ich auslesen wie viele Buchstaben eingetippt wurden?
    2. Wie kann ich das eingetippte Wort aufteilen? z.B. einmal den 1. Buchstaben in einen String reinpacken, dann Zeichen 2 - 5 in einen String und dann die Zeichen 5 - 9 in String 3.
    3. Wie wandle ich einen String in einen Hexwert um?

    Dankeschön!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jannik ()

  • 0.

    PHP-Quellcode

    1. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    2. Dim anzahl, i As Byte
    3. anzahl = TextBox1.Text.Length
    4. If anzahl >= 13 Then
    5. TextBox1.Text = TextBox1.Text.Substring(0, 13)
    6. End If
    7. End Sub


    1. anzahl = TextBox1.Text.Length

    2.
    string1=TextBox1.Text.Substring(0, 1)
    string2=TextBox1.Text.Substring(2, 3)
    string3=TextBox1.Text.Substring(5, 4)

    3.
    meinst du das es zb. 64 von dezimal in hexadezimal umwandelt?

    edit:
    wir sagen mal das ich das richtig aufgefasst hab da müsste da geht das so

    PHP-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim dez As Integer = TextBox2.Text
    3. Dim rest(100) As String
    4. Dim i, j, länge, ablage As Integer
    5. länge = TextBox2.Text.Length
    6. For i = 1 To länge
    7. rest(i) = dez Mod 16
    8. dez = dez \ 16
    9. j = i
    10. If rest(i) > 9 Then
    11. ablage = rest(i)
    12. If ablage = 10 Then rest(i) = "A"
    13. If ablage = 11 Then rest(i) = "B"
    14. If ablage = 12 Then rest(i) = "C"
    15. If ablage = 13 Then rest(i) = "D"
    16. If ablage = 14 Then rest(i) = "E"
    17. If ablage = 15 Then rest(i) = "F"
    18. End If
    19. If dez = 0 Then Exit For
    20. Next
    21. For i = j To 0 Step -1
    22. TextBox1.Text = TextBox1.Text + rest(i)
    23. Next
    24. End Sub
    Alles anzeigen


    hab aber jetzt bloß von dez in hex gemacht

    Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von Lacky ()