Witam,
W jaki sposób otworzyć i edytować biblioteke DLL ?
Nie da się... To tak jakbyś chciał EXE edytować.
Da się tak jak i *.exe. Jak nie jest spakowany exek lub dllka ani zaszyfrowana jakoś lub zabezpieczona to pod
Deassembleratorem widać kod, ktory można zmieniać pod HexEdytorem na przykład. Tutaj kłaniają się raczej
podstawy crackingu, ale ja się już w to od dawna nie bawie, ale pewnie na necie da się wygooglować tutoriale.
Nie będzie to taka sama edycja jako byś mial kod programu. Po prostu zmieniasz instrukcje na inne w taki to
sposób crackerzy usuwają na przykład z gier kod sprawdzający czy w napędzie jest oryginalna plyta z grą itp.
olesio ma racje "deassembly" - a jak myslisz skad w reverse bierze sie kod zrodlowy (interpretowane sa rozkazy niskopoziomowe na instrukcje konkretnego jezyka).
Przykladem aplikacji jest "IDA Pro" a tutaj kursy
<url> http://www.infosecinstitute.com/courses/reverse_engineering_training.html</url>
crowa napisał(a)
a jak myslisz skad w reverse bierze sie kod zrodlowy
Kodu źródłowego nie bierze, jest to niemożliwe w wypadku aplikacji natywnych. Kod mozolnie odtwarza się ręcznie, co najwyżej wspierając się różnymi automatami.
deus.: może mając na myśli postęp w zabezpieczeniach gier i programów jaki się dokonał mam dosyć małe
doświadczenie, w czasach "świetności" polskiej cracksceny łamałem raczej prosto zabezpieczone programy,
z pisaniem keygenów w ogóle mi nie szło, ale jestem pewien że do tego celu używałem właśnie czasami IDY
ale częściej wygodniej było pod WDasmem prosty i wygodny na proste programy :) Może Ty znasz jakieś
inne metody, ale przykład na prosty reverse engineering z życia wzięty. Nudząc się jeszcze w starym roku z
filmiku na youtube dowiedzialem się że w Pasjansie dla XP istnieje kombinacja klawiszy Alt+Shift+2, ktora to
po naciśnięciu powoduje ułożenie się kart i końcową animacje kart. Dzięki ów wiedzy i resztce wiedzy, ktora
pozostała w glowie z czasów crackowania dokonałem prostej modyfikacji używając WDasma do śledzenia
kodu, a legendarnego HIEW do edycji exeka. Namierzyłem sobie w kodzie miejsce gdzie zamiast "pushów",
które pokazywały MessageBoxa z pytaniem "czy rozdać ponownie" wstawiłem skok do kodu ktory zaczyna
nową grę i dzięki temu że znałem cheat kombinację mogłem swoją zmianę od razu przetestować nie musząc
układać całego pasjansa za każdym razem. Wynikiem modyfikacji jest to że Pasjans nie pyta się upierdliwie
czy rozdać ponownie tylko po skończonej grze jak klikniemy myszką lub naciśniemy Escape od razu mamy
rozdane karty tak jak po kliknięciu na Tak. Od takie ułątwienie dla grającego aby nie wkurzać go tym - imo,
zbędnym komunikatem. Zrobiłem to oczywiście w celu samo edykacyjnym, nie powiem jak dokładnie zwą się
użyte narzędzia poza ich skroconymi nazwami oraz jakie offsety i na co zmieniłem, bo to niezgodne chyba z
licencją systemu operacyjnego, ale udowadnia to że do wspomagania procesu modyfikacji kodu exe lub dll z
pewnością używa się między innymi DisAssemblera. Może mam mgliste pojęcie, ale wystarczyło mi ono aby w
Pasjansie czy innych niezabezpieczonych programach dokonać prostej modyfikacji tak aby program działał w
taki sposób, jak ja chce. Chociaż oczywiście za reverse inżyniera nie mam co się uważać, bo dodawanie sekcji
do plików exe albo reverseme w ktorych treeba od zera dodać jakąs pozycje do menu i kod - to jak dla mnie
wyższa szkoła jazdy. Na ogoł w słabo zabezpieczonych progrmach zmiana opiera się na tzw "reverse jump".
Ale to nie temat na to forum chyba. Mogę zwiro jedynie polecić aby sobie pogooglował wytrwale, oczywiście
od dawnych czasów mase stron z tutorialami do crackme/reverseme i innymi tutkami upadło, ale pewnie jak
się chce to coś się jeszcze powinno udać znaleźć w odchłani Internetu, pewnie nawet i w języku polskim :)
deus. napisał(a)
Kodu źródłowego nie bierze, jest to niemożliwe w wypadku aplikacji natywnych.
Jest to problem ekstremalnie trudny, ale nie niemożliwy.
Kod mozolnie odtwarza się ręcznie, co najwyżej wspierając się różnymi automatami.
które to automaty mogą w teorii być bardzo zaawansowane i dopracowane..
Kompilacja jest procesem stratnym! Wszelkie stałe, adresy symboliczne etc. przestają istnieć, typy danych również - pojawiają się wieloznaczności. Nie da się jednoznacznie odtworzyć źródeł, można wyłącznie napisać kod od podstaw wzorując się na deadlistingu. Można wygenerować coś, co się skompiluje do podobnej formy jak reverse'owany kod, owszem, ale bardziej skomplikowanego kodu po prostu nie da się odtworzyć logicznie.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.