Forum » Programiranje » Kako debugirati dll ?
Kako debugirati dll ?
l0g1t3ch ::
Kako bi najlažje debugiral nek dll o katerem nevem praktično ničesar.
Ugotovil sem, da ima tri public funkcije, sedaj pa me zanima kako debugirat to ? Vse kar bi rad bi, da bi lahko na te tri funkcije postavil breakpointe in, da videm kdaj se katera funkcija pokliče in z kakšnimi parametri ter kaj vrne.
Sklepam, da če funkcije niso preveč komplicirane, da se da ugotovit tip podatkov za argumente funkcije in tip, ki ga vrača ali se motim tukaj ?
Hvala za pomoč.
Ugotovil sem, da ima tri public funkcije, sedaj pa me zanima kako debugirat to ? Vse kar bi rad bi, da bi lahko na te tri funkcije postavil breakpointe in, da videm kdaj se katera funkcija pokliče in z kakšnimi parametri ter kaj vrne.
Sklepam, da če funkcije niso preveč komplicirane, da se da ugotovit tip podatkov za argumente funkcije in tip, ki ga vrača ali se motim tukaj ?
Hvala za pomoč.
Senitel ::
Kje to delaš? Načeloma ne bo šlo drugače kot z disassemblyem. Torej naložiš funkcijo, jo pokličeš in potem greš z debuggerjem čez disassembly in pogledaš kaj oziroma koliko parametrov jemlje iz stacka. Ugotovit semantiko bo pa rahlo bolj zabavno...
l0g1t3ch ::
Z uporabo DLL Export Viewer-ja sem pogledal kere funkcije dll exporta in njihov address space. Sedaj pa me zanima, kako to naložit v debuger in debugirat.
Se da to počet recmo z visual studiom 2010 ?
Drugače pa predvidevam kaj naj bi bili parametri, vsaj pri eni funkciji naj bi šla noter dva stringa.
Se da to počet recmo z visual studiom 2010 ?
Drugače pa predvidevam kaj naj bi bili parametri, vsaj pri eni funkciji naj bi šla noter dva stringa.
Zgodovina sprememb…
- spremenilo: l0g1t3ch ()
Senitel ::
Ja kaj iz Visual Studia 2010? C#, C++, Visual Basic?
Za C++ imaš LoadLibrary/FreeLibrary in GetProcAddress. Daš en dummy prototip za funkcijo iz DLL-ja in jo pač pokličeš in greš gledat z debuggerjem. Druga opcija je da disassemblaš DLL direkt.
Če funkcije vzamejo stringe not kot C stringe (char*) potem je to simpl. Lahko imaš pa recimo std::string... Ali pa kakšno čudno custom implementacijo stringov in potem si screwed.
Za C++ imaš LoadLibrary/FreeLibrary in GetProcAddress. Daš en dummy prototip za funkcijo iz DLL-ja in jo pač pokličeš in greš gledat z debuggerjem. Druga opcija je da disassemblaš DLL direkt.
Če funkcije vzamejo stringe not kot C stringe (char*) potem je to simpl. Lahko imaš pa recimo std::string... Ali pa kakšno čudno custom implementacijo stringov in potem si screwed.
l0g1t3ch ::
Naredu sm en testni projkt v c++ in enega v c# in če dodam ta dll pod reference mi usuje VS.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | instalacija dll-jaOddelek: Operacijski sistemi | 907 (712) | settler |
» | [Visual Studio .NET] Uvoz Delphi DLL-ja v okolje ASP.NETOddelek: Programiranje | 1575 (1476) | Kekec |
» | Win32 API in statične knjižniceOddelek: Programiranje | 1234 (1141) | CCfly |
» | Uporaba .dllOddelek: Programiranje | 1371 (1331) | Vesoljc |
» | Win32 API in C++Oddelek: Programiranje | 1553 (1424) | Monster |