Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Witam wszystkich odwiedzających ten temat.

 

A więc ostatnio zacząłem bawić się programem XVI32 - Hex Editor.

 

 

I teraz założmy otwieram przez niego jakiś program, edytuje wpis np. Hello World! na napis: Witam Was.

 

No tak i gdy zapiszę, otworzę program, jest ok zamiast tego napisu Hello... pojawia się Wit...

 

No ale gdy chcę coś dodać, np. Jak jest napis Hello World! to chce dodać do tego napisu jeszcze np. MPCFORUM! poprzez insert string. Dodaje ten wpis, zapisuje program i gdy chcę już go otworzyć to już się pojawia błąd i już nie ma ikonki programu tylko standardowy biały kwadrat.

 

Jednym słowem, jezeli edytuje tekst i podmienie go na tą samą liczbę słow jest ok, jeżeli dodam coś od siebie to już jest błąd, dlatego proszę o pomoc co robie nie tak jak to skomplikować czy coś aby śmigało, dziękuje bardzo i pozdrawiam.

~~Crystal Silkroad~~ >>>>>>>>>> Azonicowned <<<<<<<<<<

Opublikowano

Poczytaj o assemblerze. Wystarczy, że znajdziesz trochę więcej miejsca w binarce i dodasz tam swojego stringa. Oczywiście będziesz musiał zmienić pobierany adres standardowego stringa na nowego. Można to zrobić w XVI32 ale trzeba znać odpowiedniki instrukcji asm w kodzie hex. Do takiej zabawy polecam ollydbg. Jeśli znasz asm to po prostu szukasz PUSHa z owym stringiem i zmieniasz adres :P Po odpaleniu olly wolne miejsce znajdziesz na końcu bloku.

Przykład:

oryginalny kod msgboxa w moim programie:

To jest ukryta treść, proszę

znalazłem miejsce pod adresem 0044DEE2 i dodałem stringa:

To jest ukryta treść, proszę

i zmieniłem PUSHa:

To jest ukryta treść, proszę

YOU MUST DIE

- Ganon, Koridai

Opublikowano

Poczytaj o assemblerze. Wystarczy, że znajdziesz trochę więcej miejsca w binarce i dodasz tam swojego stringa. Oczywiście będziesz musiał zmienić pobierany adres standardowego stringa na nowego. Można to zrobić w XVI32 ale trzeba znać odpowiedniki instrukcji asm w kodzie hex. Do takiej zabawy polecam ollydbg. Jeśli znasz asm to po prostu szukasz PUSHa z owym stringiem i zmieniasz adres :P Po odpaleniu olly wolne miejsce znajdziesz na końcu bloku.

Przykład:

oryginalny kod msgboxa w moim programie:

0044D0F4   . 6A 00          PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
0044D0F6   . 68 08D14400    PUSH Project1.0044D108                   ; |Title = "OK"
0044D0FB   . 68 0CD14400    PUSH Project1.0044D10C                   ; |Text = "Hello World"
0044D100   . 6A 00          PUSH 0                                   ; |hOwner = NULL
0044D102   . E8 2D98FBFF    CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

znalazłem miejsce pod adresem 0044DEE2 i dodałem stringa:

0044DEE2 .54776F6A61... ; ASCII "Twoja mama Cie nie kocha",0

i zmieniłem PUSHa:

0044D0F4   . 6A 00          PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
0044D0F6   . 68 08D14400    PUSH Project1.0044D108                   ; |Title = "OK"
0044D0FB   . 68 0CD14400    PUSH Project1.0044DEE2                   ; |Text = "Twoja mama Cie nie kocha"
0044D100   . 6A 00          PUSH 0                                   ; |hOwner = NULL
0044D102   . E8 2D98FBFF    CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

 

Jezeli pyta dlaczego mu sie tak dzieje i czy powinien cos skompilowac to raczej sie na ASM nei zna a to co napisales jest czarna magia.

×
×
  • Dodaj nową pozycję...