Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

C, C#, C++ - Code Injection w C++ ???

krzys_h - 20-12-2010, 14:08
Temat postu: Code Injection w C++ ???
Tak jak w tytule. Czy wiecie jak to zrealizować?
adiblol - 20-12-2010, 17:17

Chodzi zapewne o atak przepełnienia bufora aby nadpisać kod, lub wskaźnik na funkcję, lub adres powrotu na stosie. Tutaj nie ma gotowego sposobu, trzeba przeanalizować (korzystając np. z gdb) gdzie znajduje się co w pamięci a jeśli nie dysponujemy kodem źródłowym to ciężko takie coś przeprowadzić. Poszukaj na stronach uw-team albo haker.com.pl.

A że się tak zapytam do czego Ci to potrzebne?

krzys_h - 21-12-2010, 18:57

Gdzieś w internecie przeczytałem, że można w ten sposób modyfikować program. Pomyślałem sobie, że może udałoby się zrobić multiplayera do COLOBOTa.
adiblol - 21-12-2010, 20:48

Nie ma potrzeby, prościej zmieniać kod gdy program się nie wykonuje, deasemblerem.
krzys_h - 22-12-2010, 12:12

Dzięki za odpowiedź. Pokombinuję z tym deassemblerem.
DemoLisH - 28-01-2011, 20:06

jeśli nadal potrzebujesz pomocy mogę Ci napisać co i jak
krzys_h - 30-01-2011, 13:05

Dzięki, już tego nie potrzebuję. Ale jeśli wiesz, jak zrobić pamieć współdzieloną w Windows to by się przydało...

Konkretnie mam na myśli coś takiego:
Tworzę dwa procesy: uruchom.exe i colobot.exe. Oba korzystają z pliku Hook.dll. Proces colobot.exe wywołuje funkcję z biblioteki Hook.dll, która tworzy strukturę. I teraz potrzebuję, aby proces uruchom.exe miał dostęp do tej struktury. Jedyne, co udało mi się osiągnąć, to komunikat Wystąpił błąd i aplikacja została zamknięta. Przepraszamy za kłopoty

adiblol - 30-01-2011, 16:16

aaaaaaaaAAAAAAAAAAAaaaaaaaaaaa na początku nie rozumiałem ale to takie proste.
Niepotrzebne bawisz się dll'kami. Lepiej jak plik uruchom.exe uruchamia Colobota w trybie debugowania. Wtedy możesz rezerwować, czytać i zapisywać pamięc wewnątrz colobot.exe za pomocą funkcji VirtualAllocEx, ReadProcessMemory, WriteProcessMemory.

DemoLisH - 02-02-2011, 17:26

tzn chcesz uzyskać dostęp do tej struktury? adres tej struktury się zmienia? chcesz w niej coś pozmieniać? chcesz z niej wywołać jakąś funkcję? opisz to trochę bardziej to ci pomogę :)
krzys_h - 04-02-2011, 17:37

A więc:
DemoLisH napisał/a:
tzn chcesz uzyskać dostęp do tej struktury?

Tak.
DemoLisH napisał/a:
adres tej struktury się zmienia?

Tak
DemoLisH napisał/a:
chcesz w niej coś pozmieniać?

Chciałbym odczytywać i zapisywać warości zmiennych, a jak się nie da, to tylko odczytywać
DemoLisH napisał/a:
chcesz z niej wywołać jakąś funkcję?

Nie, wywoływać funkcji nie potrzebuję

DemoLisH - 12-02-2011, 00:14

a ta funkcja zwraca wskaźnik do tej struktury? czy w niej w środku jest ona tworzona bo jak tak to przerąbane masz ;D pozostaje wtedy wyszukać pointera do tej struktury
i jaką strukturę w colobocie chciałbyś przechwycić bo jestem ciekaw i mógłbym ci bardziej pomóc ;P


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group