dodawanie funkcji do pliku exe

0

Załóżmy, że mam gotowy plik exe i chcę żeby podczas jego uruchamiania wykonywał dodatkową czynność(funkcję) napisaną w C++Builderze.
Przykład aby objaśnić sytuację:
Mam plik exe(kalkulator.exe - bez kodu źródłowego) i drugi plik exe(skompilowany w builderze), otwieram oba pliki w notatniku i kopiuję wszystko z drugiego programu do pierwszego(logiczne że nie działa ale pokazuję sytuację)
Czy da się zrobić że skompiluję samą funkcję i zadziała gdy wkleję ją na koniec pliku exe??
PS1 - to mój pierwszy post
PS2 - korzystam z darmowego Broland C++Builder</cpp>

0

Wykorzystaj dll, stworz jedna funkcję, ktora we wszystkich dołaczanych do twojego programu dll-kach bedzie miala takie same parametry nazwe i typ zwracany. Uzyj jej do zwocenia wiadomosci na temat innych funkcji zawartych w tej dll-ce.

Grzebanie bezposredio w kompilacie jest owszem mozliwe, ale nie ma chyba takiego automatycznie dzialającego programu... Nadal jest to typowa ręczna robota, pozostająca domeną krakerów.

0

to się nazywa overcoding. Ale do tego potrzebna jest straszliwa wieda o programach pod winde, budowie naglowka PE, asm i paru innych rzeczach. Jak rowniez cholerne doswiadczenie :)

0

to się nazywa overcoding. Ale do tego potrzebna jest straszliwa wieda o programach pod winde, budowie naglowka PE, asm i paru innych rzeczach. Jak rowniez cholerne doswiadczenie :)

wybacz slownictwo ale pieprzysz glupoty - zbindowanie dwoch programow jest bardzo proste.

0

Skoro to takie proste to odpowiedziałbyś na pytanie, a nie mówił że proste i nie piszesz

Skoro to takie proste to napisz jak to zrobić

0

Dodanie na koniec aplikacji funkcji/procedury w flat binary image jest proste. Wystarczy wywołać adres w pamięci końca orginalnego programu.
Nie wiem czemu, ale tylko w assemblerze jest to możliwe, choć każdy inny język programowania jest na niego tłumaczony.
Przykład:
W C nie zadziała:
void* a;
a();
A w assemblerze zadziała:
call a
Gdzie a to wskaźnik.

Już John von Neumann miał wspaniały pomysł - unifikację kodu z danymi, lecz prawie nikt z tego nie korzysta.
Wyjątek - systemy operacyjne, i napisany przeze mnie program do obsługi flat binary image 32bit w MSWindows (wiem, że korzystam z najgorszego kompletnego 32bitOS).

0

wybacz slownictwo ale pieprzysz glupoty - zbindowanie dwoch programow jest bardzo proste.

zbindowanie tego owszem, ale z tego co ja zrozumiałem, to on chce wstawić swoją funkcję do gotowego programu. Wstawić sobie może, ale jak chce żeby mogła być odpalana np z menu albo po kliknięciu w jakiś button to musi się chłopak niemało namęczyć.

0

najpierw bym radzil poczytac sobie o naglowku pe i strukturach pliku. potem ofcoz mozna zrobic taki cfancyk ze robisz sobie nowa sekcje w pliku i umieszczasz w niej dodatkowy kodzik... ofcoz musisz zmienic oep na adres do twojego kodu... poza tym przydalaby sie podreczna tablica importow w ktorej zapisane beda odwolania do funkcje api z ktorych bedziesz korzystal... :]

0

Już piszę bo chyba nie do końca rozumiecie choć ostatnie post o tym mówi. Nie zależy mi by funkcja(lub fragment kodu) były uruchamiane z menu start lub czegoś innego ale przy uruchomieniu programu.

PS. Czy można zdekompilować aplikację do C++ ??
PS2. Czy każda aplikacja może być zdekompilowana do assemblera?

0

to znaczy cyber kid dobrze myśli !

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