Jak porównać biblioteki DLL

0

Mam w rękach dwie biblioteki. W jednej skompilowaną przez pierwszego developera, w drugiej przez drugiego.

Biblioteki generalnie wywodzą się z tego samego źródła, ale różnią się kilkoma detalami (działaniem kilku funkcji).

To co chcę zrobić, to porównać jakoś te dwie biblioteki i wskazać któe funkcje się różnią. Wystarczy informacja: ta, ta i ta.

0
toyman napisał(a):

Mam w rękach dwie biblioteki. W jednej skompilowaną przez pierwszego developera, w drugiej przez drugiego.

Biblioteki generalnie wywodzą się z tego samego źródła, ale różnią się kilkoma detalami (działaniem kilku funkcji).

To co chcę zrobić, to porównać jakoś te dwie biblioteki i wskazać któe funkcje się różnią. Wystarczy informacja: ta, ta i ta.

Nie ma prostego sposobu żeby to zrobić. Najprostszy jaki mi przychodzi do głowy to porównywanie wyników. Do trudniejszych zalicza się zreversowanie tej biblioteki i ręczne sprawdzanie funkcji. Jak już to dla takiego newbie jak ty tylko prosta wersja się nadaje...
Oczywiście możesz napisać własny disassembler który porówna na poziomie kodu maszynowego podobność, ale zgaduję że nie masz ani wystarczającej wiedzy ani wystarczającego czasu żeby to zrobić.

Może jak powiesz po co ci je porównywać to znajdziemy łatwiejszy sposób.

0

"Jak już to dla takiego newbie jak ty tylko prosta wersja się nadaje..." no świetnie tylko skąd wiesz że newbie bo chyba nie po 7 latach stażu na forum? Temat wcale nie jest prosty i mógł takie pytanie zadać doświadczony programista... masakra niektórzy tutaj mają mniemanie o sobie wszyscy są newbie ja jestem guru

Tutaj pytają tylko newbie :P .
Skoro nie miał jeszcze żadnego pomysłu to zakładam że jest newbie jeżeli chodzi o budowę plików PE EXE i DLL, RE i takie tam. Gdyby był dobry to by wiedział jak to zrobić.
Nie uważam się za guru, ale mam dużą wiedzę jeżeli chodzi o format PE. A on mi nie wyglądał na kogoś kto się na tym zna. Jak się mylę to prove me wrong.
Zauważ że można się skupić na innym kierunku, i wtedy mniej doświadczony programista będzie wiedział więcej w innym kierunku. Ja np. nie znam się nic a nic na bazach danych. Dlatego uważam że długość stażu to nie najlepszy miernik wiedzy jeżeli chodzi o różne kierunki wiedzy.

niektórzy zamykają się w jednej technologii i klepią ciągle to samo (przypadłość programistów delphi i php). wystarczy spojrzeć na inne posty autora, np. niedawne stwierdzenie, że "program nie ładuje żadnych bibliotek, więc nie można zastosować dll injection" sprawia, że o RE autor ma nikłe (i błędne) pojęcie.

Całkowicie się zgadzam. Nawet już zapomniałem o tej jego odpowiedzi zabawnej.

0

Oh. widzę, że Panowie szlachta się odezwali.

Czasami witki mi opadają, jak coponiektórym się wydaje, że jak umie napisać: x:=1+1; to sa wielkimisuperhipermegaturboodlotowymi koderami.

Zamykac się na technologię ? Znam 11 języków programowania (możecie wieRZyć lub nie. Chwilę sięjuż bawię informatyką. Z tego żyję) i co z tego ? Używam narzędzi, które po prostu robią robotę. Najbardziej nie lubię, kiedy leszcz jeden z drugim zaraz po podstawówce skacze z jednego narzędzia na drugie, bo nie potrafi rozwiązac problemu w tym co ma.

Dla prawdziwego programisty panowie szlachta nie ma znaczenia w czym koduje. Ważne jak rozwiązuje postawiony problem.

Poza tym. Panowie Alfy i Omegi - jakżeście tacy mega prze ... znajdźcie sposób. Nie musi być prosty. Ja sobie poradzę. Wiem jak to zrobić sposobem bardziej skomplikowamym.

Ale jedna ultra ważna prośba: zróbcie to PO TYM jak wyjdziecie z piaskownicy

0

Czasami witki mi opadają, jak coponiektórym się wydaje, że jak umie napisać: x:=1+1; to sa wielkimisuperhipermegaturboodlotowymi koderami.

A mi jak się innym wydaje że wszystko wiedzą.

Zamykac się na technologię ? Znam 11 języków programowania (możecie wieRZyć lub nie. Chwilę sięjuż bawię informatyką. Z tego żyję) i co z tego ? Używam narzędzi, któe po prostu robią robotę. Najbardziej nie lubię, kiedy leszcz jeden z drógim zaraz po podstawówce skacze z jednego narzędzia na drugie, bo [błąd ortograficzny] potrafi rozwiązac problemu w tym co ma.

I co to ma do twojego pytania.
Możesz wiedzieć wszystko, ale nie wiesz nic o RE co już pokazałeś. Przestań zapierać się nogami że się na tym znasz bo po twoich wypowiedziach widać że się nie znasz. A akurat tutaj się to liczy. Bardzo mi przykro że nadepnąłem na twoją dumę, ale mam rację.

Poza tym. Panowie Alfy i Omegi - jakżeście tacy mega prze ... znajdźcie sposób. Nie musi być prosty. Ja sobie poradzę. Wiem jak to zrobić sposobem bardziej skomplikowamym.

Przecież ci podałem możliwe rozwiązania. Nadal oczekuje odpowiedzi na moje pytanie co chcesz osiągnąć.

Ale jedna ultra ważna prośba: zróbcie to PO TYM jak wyjdziecie zpiaskownicy

Yup, he is mad.

0

Dobra. Ustalmy jedno: Jestem leszczem. Tak jestem newbie.

Zadowoleni ? Zajefajnie.

Czy zamiast mi ubliżać i przedłużać swoje męskości możecie odpowiedzieć cokolwiek na temat ?

Na razie mnie tylko obrażacie.

Jeżeli macie do powiedzenia cokolwiek wartościowego - poproszę. W innym przypadku wasza żyłć jest mi zbędna. Robi się od niej niedobrze.

0

Ściągnij IDĘ Pro Free, odpal dwie instancje, załaduj biblioteki i porównuj funkcje. Jeżeli były skompilowane w tym samym środowisku (te same optymalizacje, inlining) to wyłapywanie różnic powinno być stosunkowo proste (wzrokowe). Jeżeli większość funkcji będzie identyczna, ale ogólnie jest ich bardzo dużo to możesz sobie napisać skrypt do IDY, który wyłapie ci różnice.

Ale do tego musisz znać assembly x86. Skoro znasz 11 różnych języków to zapewne będzie to pestka (bo jako programista Delphi np. na pewno wiesz czym się różni konwencja wywołania stdcall od fastcall).

0

Dobra. Ustalmy jedno: Jestem leszczem. Tak jestem newbie.
Zadowoleni ? Zajefajnie.
[...]
Jeżeli macie do powiedzenia cokolwiek wartościowego - poproszę. W innym przypadku wasza żyłć jest mi zbędna. Robi się od niej niedobrze.

Nikt nie mówi że jesteś newbie, po prostu pokazujemy ci że nie znasz się na RE. I zamiast mieć pretensję do nas o to, ogarnij się, przestań nad tym rozpaczać. Jeżeli znasz się na RE to to pokaż, inaczej przestań nam jęczeć bo naprawdę mało nas to obchodzi. Jedyne co tym wywołujesz to flejmwar którego tutaj nie potrzebujemy. Jak masz z tym taki problem to zamiast odpowiadać idź się uspokój i potem odpowiadaj jak człowiek na poziomie.

OnTopic: Mówiłem ci już dwa razy żebyś powiedział po co ci to, to może znajdziemy inne rozwiązanie. Jeżeli chodzi o to konkretne rozwiązanie to podałem ci parę sposobów (te bardziej zaawansowane też podałem na wypadek gdybyś jednak się znał, nie po to żeby ci ubliżać).
Chcesz żebyśmy udzielali odpowiedzi ontopic ale sam takich nie udzielasz. Może czas najwyższy?

0

Ale chłopie. Ja NIE stawiam sobie za punkt honoru znania się na każdej rzeczy na świecie. Wiem tyle ile musze wiedzieć, żeby wedzieć gdzie zapytać o więcej szczegółów. Kiedy już wiem w którą stronę się obrócić - dam sobie radę. Poszanuj to.

Czy to na prawdę takie trudne do zrozumienia ?

Poza tym tak sobie pomyślcie jeden z drugim: Skąd czerpaliście wiedzę, żeby zostać takimi prze ? No bo założę się, że każdy z was nie narodził się z głową wypełnioną kodem. Skądś ją zanabył.

1
toyman napisał(a):

Ale chłopie. Ja NIE stawiam sobie za punkt honoru znania się na każdej rzeczy na świecie. Wiem tyle ile musze wiedzieć, żeby wedzieć gdzie zapytać o więcej szczegółów. Kiedy już wiem w którą stronę się obrócić - dam sobie radę. Poszanuj to.

Czy to na prawdę takie trudne do zrozumienia ?

Poza tym tak sobie pomyślcie jeden z drugim: Skąd czerpaliście wiedzę, żeby zostać takimi prze ? No bo założę się, że każdy z was nie narodził się z głową wypełnioną kodem. Skądś ją zanabył.

Tobie nie zależy na odpowiedzi ale na flejmwarze. Nie mam zamiaru kontynuować z tobą tej bezsensownej konwersacji.

0
-123oho napisał(a):

Nikt nie mówi że jesteś newbie

-123oho napisał(a):

Jak już to dla takiego newbie jak ty tylko prosta wersja się nadaje...

Hipokryzja, czy brak konsekwencji ?

-123oho napisał(a):
toyman napisał(a):

Ale chłopie. Ja NIE stawiam sobie za punkt honoru znania się na każdej rzeczy na świecie. Wiem tyle ile musze wiedzieć, żeby wedzieć gdzie zapytać o więcej szczegółów. Kiedy już wiem w którą stronę się obrócić - dam sobie radę. Poszanuj to.

Czy to na prawdę takie trudne do zrozumienia ?

Poza tym tak sobie pomyślcie jeden z drugim: Skąd czerpaliście wiedzę, żeby zostać takimi prze ? No bo założę się, że każdy z was nie narodził się z głową wypełnioną kodem. Skądś ją zanabył.

Tobie nie zależy na odpowiedzi ale na flejmwarze. Nie mam zamiaru kontynuować z tobą tej bezsensownej konwersacji.

Matko boska. Nareszcie ...

0
Rev napisał(a):

Ściągnij IDĘ Pro Free, odpal dwie instancje, załaduj biblioteki i porównuj funkcje. Jeżeli były skompilowane w tym samym środowisku (te same optymalizacje, inlining) to wyłapywanie różnic powinno być stosunkowo proste (wzrokowe). Jeżeli większość funkcji będzie identyczna, ale ogólnie jest ich bardzo dużo to możesz sobie napisać skrypt do IDY, który wyłapie ci różnice.
Okej. Nie mam pewności, a wręcz stawiam, że były kompilowane różnymi środowiskami.

Zostaje opcja tylko i wyłącznie ręczne porównywania treści funkcji ?

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