Plik wykonywalny - dezasemblacja, zmiana interfejsu i zapis zmian

0

Nie wiedziałem gdzie to wrzucić więc w sumie trafiłem tutaj.
A więc mój problem jest taki:
-chciałbym pogrzebać w kodzie gotowego pliku tzn. tak jakby cofnąć plik wykonywalny do kodu
-pozmieniać kod i dostosować go do swoich potrzeb + zmienić lekko interfejs
-zakończyć całą edycję powrotem do działającego programu z wprowadzonymi przeze mnie zmianami

0

reverse engineering. Musisz znać assemblera perfect. Odczytanie z pliku wykonywalnego kodu wysokiego poziomu nie jest możliwe na dzień obecny.

0

chciałbym pogrzebać w kodzie gotowego pliku tzn. tak jakby cofnąć plik wykonywalny do kodu

Kompilacja jest procesem jednostronnym, więc w większości przypadków nie cofniesz tego do formy oryginalnego kodu (ani nawet niczego podobnego) - jedynie otrzymasz kod Assemblera.
Ta "mniejszość przypadków" to dekompilacja bajtkodu - ale to zupełnie inna 'liga'.

pozmieniać kod i dostosować go do swoich potrzeb + zmienić lekko interfejs

Poczytaj o reverse-engineeringu, lecz minie kilka(naście) lat, nim w ogóle pojmiesz o co z tym wszystkim chodzi, a jak już zrozumiesz, z czym to się je, to dojdziesz do wniosku, że takie modyfikacje w większości przypadków nie mają sensu, ponieważ są zbyt czasochłonne (zależnie od tego, co chcesz zmienić - może to być kilka godzin, lecz równie dobrze i kilka miesięcy/lat; a i tak wyjdzie następna wersja programu i całą pracę szlag trafił).
Jedynie czasami wygląd formatek można zmieniać bez jawnego grzebanie w kodzie - oglądnij sobie programik Restorator (istniał też jakiś darmowy odpowiednik, ale zapomniałem nazwy :P).

zakończyć całą edycję powrotem do działającego programu z wprowadzonymi przeze mnie zmianami

To nie jest takie proste, jak może się wydawać...


Ogólnie `RE` to naprawdę złożony temat i jeżeli nigdy wcześniej się z tym nie bawiłeś, to nie licz, że uda Ci się zmienić/dodać do jakiejś aplikacji cokolwiek.
0

a jak już zrozumiesz, z czym to się je, to dojdziesz do wniosku, że takie modyfikacje w większości przypadków nie mają sensu, ponieważ są zbyt czasochłonne (zależnie od tego, co chcesz zmienić - może to być kilka godzin, lecz równie dobrze i kilka miesięcy/lat; a i tak wyjdzie następna wersja programu i całą pracę szlag trafił).

Wiele zmian jest trywialnych, jeśli się znajdzie odpowiednie miejsce w kodzie. Drobne poprawki interfejsu też są czasami możliwe, jeśli forma jest zapisana w zasobach exeka w jednym z powszechnie używanych formatów.

Najgorzej jest jeśli chcemy coś DODAĆ do programu.

0

program jest dość prosty bo jest to bot do gry przeglądarkowej napisany przez kogos i zczytuje on pare miejsc na mapie (robi małe zdjęć fragmentu terenu po czym wykorzystuje je do chodzenia) oraz bije potwory (używa tej samej z taka różnicą że robi zdjęcie listy z potworami i uderza tylko te które są tej samej nazwy) program ten wykorzystuje tez tylko 1 gotowe ustawienie w walce które znajduje się pod numerkiem 2 (2 gotowe ustawienia rund )

0

Masz zobrazowana roznice miedzy natywna binarka, a kodem zrodlowym:

Kod zrodlowy:

#include <stdio.h>

int main(int argc, char** argv)
{
  printf("Hello World!\n");
  return 0;
}

W miare widac o co chodzi, wyswietla sie napis na ekranie.

Binarka1:

obraz1.png
( calosc jest duzo wieksza, to czesc naglowka PE i jakies smieci ).

Binarka2:

obraz2.png

A to tylko zwykly hello world...

0

to zmieńmy może troszkę temat jak wyglądało by napisanie programu wykonywalnego który zczytywał by dane z przeglądarki i póżniej wykorzystywał by je do ustawień poruszania etc.
nie wiem zbytnio w jakim programie musiał bym zacząć to pisać jak złożyć kod i interfejs etc.

0

Programowałeś już kiedyś? Bo jak nie to nauka języka + nauka obsługi sniffera + nauka obsługi socketów w danym języku (poznanie odpowiednich bibliotek) to jak by to przeliczyć na roboczogodziny to taniej i szybciej wyjdzie Ci to zlecić komuś za odpowiednią opłatą

0

programowałem trochę w szkole ale myślę że to nie jest odpowiedni poziom aby to napisać jednak warto by było się tego nauczyć bo chciałbym coś w tym kierunku ze sobą robić / poza tym ile taki prosty program mógłby kosztować

0

A więc w sumie doszedłem do wniosku że chciałbym stworzyć sam taki program jednak nie mam zbyt dużego doświadczenia w programowaniu i nie wiem zbytnio od czego zacząć.

0

Skoro nie wiesz od czego zacząć, nie pisz tego programu.
Naucz się najpierw programować.

0

Tak najłatwiej odpowiedzieć a więc sprawa wygląda tak że idę teraz do 4 klasy technikum i chciałbym zacząć w tym kierunku coś robić i uważam ten program za dobre przygotowanie w jakikolwiek sposób do tego wszystkiego bo aktualnie po lekcjach mam średnie pojęcie o c++ delphi etc.

1

Serio - naucz się programować, nim zaczniesz pisać cokolwiek na własną rękę.
W momencie, w którym zaczynasz prosić o poprowadzenie Cię za rączkę i wskazanie drogi, nie nadszedł jeszcze czas na takie "rozbudowane" aplikacje, bo może i z pomocą innych ludzi jakimś cudem dasz radę napisać tę konkretną, lecz za drugim razem co? Znów przylecisz po pomoc i wskazanie od czego masz zacząć? Nie na tym polega programowanie.
Zresztą, nawet nie powiedziałeś w czym byś to chciał napisać...

uważam ten program za dobre przygotowanie w jakikolwiek sposób do tego wszystkiego

Porozwiązuj zadania ze SPOJ-a, to jest dobre przygotowanie.

bo aktualnie po lekcjach mam średnie pojęcie o c++ delphi etc.

etc.?

0

delphi c++ podstawy i trochę javy no i w sumie ten program chciałbym napisać w c++

0

Podstawy to nie jest "średnie pojęcie", no ale ok...
Pozostaje jeszcze kwestia, co to za gra.

0

taern

0

To jest Flash czy w samym HTML-u?
Jeżeli w HTML-u, to może wystarczyłaby zabawa z parsowaniem drzewka DOM i wysyłaniem odpowiednich zapytań do serwera. Czyli poziom średnio-zaawansowany.
W przypadku Flasha byłoby o wiele trudniej, bo trzeba by sniffować pakiety...


... a tak w ogóle, to przecież pisanie botów to łamanie prawa i/lub regulaminu gry, które niszczy całą zabawę... ja się z czegoś takiego wypisuję. EOT.
0

gra napisana jest w flashu / otrzymam jakąś pomoc?

1 użytkowników online, w tym zalogowanych: 0, gości: 1