co trzeba wiedzieć żeby prawidłowo zdeasemblować jakiś program i ponownie go skompilować?
robię sobie próby z dis6502 ale efekty są jak na razie do d... :( opcje mam ustawione tak:
po skompilowaniu madsem listingów kilkunastu gierek, żadna nie załadowała się prawidłowo (przeważnie się wieszają, albo w ogóle nie chcą się skompilować), dopiero spectipede się odpaliło, ale nie wygląda najlepiej, hmm... pozatym, żaden wynikowy plik nie miał takiego samego rozmiaru jak oryginał.
Wygląda na to, że masz takie same ustawienia, co ja. Jednak nie przyszło mi do głowy nigdy zrobić disassemble a następnie assemble, bo wydaje mi się, że zdisasemblowane dane do kodu mogą się inaczej skompilować, tak jakoś to czuję. W związku z tym ZAWSZE określałem, co jest gdzie, czyli określałem jako "data" tam, gdzie byłem pewien, że to są dane (listing bez sensu)
Ja sporo kombinowałem "empirycznie" jak chciałem jedną prostą rzecz zmienić w sofcie do side. Mam takie ustawienia jak w załączniku i nawet to działa (choć sprawdzałem tylko na river raid i space invaders).
Średnio zanim zacznę kompilować i zmieniać, to określenie gdzie jest kod a gdzie nie to od 2 do 20 minut w zależności od sposobu napisania gry. Z reguły jest kod poprzetykany jakimiś zmiennymi i napisami. Reszta to grafika łatwo wydzielalna jako odrębna część.
Jest jeszcze jeden dis6502 commandlineowy, działa tak, że wchodzi w każde odgałęzienie w kodzie, jednak trzeba też mu podać adres przerwań sztucznie (musiałem go poprawić), bo inaczej nie dizasemblował tych fragmentów.
Nie ma narzędzia, które odwali za nas robotę, ale jeśli trzeba mu pomóc poświęcając 2-3 godziny, to już jest coś.
"Fandal provided dissasembler called RSdis created by Raster, it is internal tool so I cannot publish it. It’s just one PHP script that loads executable and returns dissassembled code which can be compiled by MADS."
też mam na koncie podobny disassembler, który na podstawie kodu podejmuje decyzje gdzie kod gdzie dane, dodatkowo można odpowiednimi parametrami doprecyzować te informację, a wtedy wychodzi już czysty listing