From da61240e3e61f5df4f00306030878f92f14c6b98 Mon Sep 17 00:00:00 2001 From: "mr.exodia" Date: Tue, 18 Feb 2014 14:36:32 +0100 Subject: [PATCH] GUI/DBG/BRIDGE: symbol downloading progress bar DBG: fixed memory problems with vectors DBG: seperate symbol log GUI: symbol log implemented DBG: draft of the symbol loader --- .gitignore | 1 + bin/x32/symsrv.dll | Bin 0 -> 124520 bytes bin/x64/symsrv.dll | Bin 0 -> 137328 bytes x64_dbg_bridge/bridgemain.cpp | 5 ++ x64_dbg_bridge/bridgemain.h | 4 +- x64_dbg_dbg/addrinfo.cpp | 6 +- x64_dbg_dbg/debugger.cpp | 54 ++++++++++++++++-- x64_dbg_dbg/simplescript.cpp | 12 ++-- x64_dbg_dbg/symbolinfo.cpp | 32 ++++++++--- x64_dbg_dbg/symbolinfo.h | 4 ++ .../Project/Src/BasicView/SymbolView.cpp | 3 +- x64_dbg_gui/Project/Src/Bridge/Bridge.cpp | 36 +++++++++++- x64_dbg_gui/Project/Src/Bridge/Bridge.h | 8 ++- 13 files changed, 139 insertions(+), 26 deletions(-) create mode 100644 bin/x32/symsrv.dll create mode 100644 bin/x64/symsrv.dll diff --git a/.gitignore b/.gitignore index b3c12386..dcc1f1e0 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ x64_dbg_*/x64/* !bin/*/test.dll !bin/*/test.exe !bin/*/dbghelp.dll +!bin/*/symsrv.dll !bin/*/sqlite.dll !bin/*/BeaEngine.dll !bin/*/Scylla.dll diff --git a/bin/x32/symsrv.dll b/bin/x32/symsrv.dll new file mode 100644 index 0000000000000000000000000000000000000000..87e5467662b3b504da2cd7348aefe9ad481435e3 GIT binary patch literal 124520 zcmeFadtg-MnLmCKk`PEBBL+l49W^QnL^PnpfF>lvr6n-Qgc*Vegk*+E%*~l|xLBdk zNx<3Ts9Ue?R;#OPyRF;WT@|#70W23Uh?go}YH`=r6NgrGT?m$CexJ|#o-=bM34UwW z-M@apWahlr=Y8Ji{yy)qddVHi5Jge4@S8{|$~JuRr(FE~>OV(NJ@VXVMk-GXd*!@s z8S`H`uP)dec6Nq3R)recoQ)0b?H#IfrQaFS+MUhq&Z>nTXIn>;zj(xm;YH@q8@4?# z?do@q1gzhWFPa&cg6EGfx;Ai?DE}<*nRqS}&mUiOO(07=UmYkDpBDs%;PdQrZwrhU z&!uMh4Dngp+!*B8)=JziMVX(Gt$eU$bgfl(NXa}eFC$M;+!>1UNv0_N@!9z9z}FS{ zk*@%Tm^|+L@&+9>y=` z&(AWH;0%19lBL`?3f1U4-l`kqbHeg|d*sMc9>?sr)@3M%25Dcc`q!!`pRfRp2p881 zcHxFnx3#I@6&o_tx{UM7=<)HsCF2khS)Fc+KfFhI& z@Y@C2>++=P2m7}8I~k6j;&)#A>W0?lCTC{@M1o)Shwv>N_BT1z4re6=gWBBYcLucf zMzy)4y_nRYOla3yTQ9+<(ynMqEB@iZ{K?t4ar4Ga8$okJHgDYgy^V$0*)Er>ySqCZ zWHV)>d*enWSDA3}bhmG#GE}*0$`rTz7Ibw^*mw)7K+-E#1cSlc+@WhbJJ)n}=H@DB zpQ{YTr}&w_q~wa?rq)*TQK@WL+1&0|lSPX>u3CEw-@FC$7P#t?^?06JSLaSX W1 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 literal 0 HcmV?d00001 diff --git a/x64_dbg_bridge/bridgemain.cpp b/x64_dbg_bridge/bridgemain.cpp index ba8ab27f..4b255da3 100644 --- a/x64_dbg_bridge/bridgemain.cpp +++ b/x64_dbg_bridge/bridgemain.cpp @@ -641,6 +641,11 @@ BRIDGE_IMPEXP void GuiSymbolUpdateList(int count, SYMBOLMODULEINFO* modules) _gui_sendmessage(GUI_SYMBOL_UPDATE_LIST, (void*)(duint)count, (void*)modules); } +BRIDGE_IMPEXP void GuiSymbolSetProgress(int percent) +{ + _gui_sendmessage(GUI_SYMBOL_SET_PROGRESS, (void*)(duint)percent, 0); +} + //Main BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { diff --git a/x64_dbg_bridge/bridgemain.h b/x64_dbg_bridge/bridgemain.h index 956c698a..d209dbd2 100644 --- a/x64_dbg_bridge/bridgemain.h +++ b/x64_dbg_bridge/bridgemain.h @@ -304,7 +304,8 @@ enum GUIMSG GUI_SYMBOL_LOG_ADD, // param1(const char*)msg, param2=unused GUI_SYMBOL_LOG_CLEAR, // param1=unused, param2=unused - GUI_SYMBOL_UPDATE_LIST // param1=int count, param2=SYMBOLMODULEINFO* modules + GUI_SYMBOL_UPDATE_LIST, // param1=int count, param2=SYMBOLMODULEINFO* modules + GUI_SYMBOL_SET_PROGRESS // param1=int percent param2=unused }; //GUI functions @@ -333,6 +334,7 @@ BRIDGE_IMPEXP int GuiScriptMsgyn(const char* message); BRIDGE_IMPEXP void GuiSymbolLogAdd(const char* message); BRIDGE_IMPEXP void GuiSymbolLogClear(); BRIDGE_IMPEXP void GuiSymbolUpdateList(int count, SYMBOLMODULEINFO* modules); +BRIDGE_IMPEXP void GuiSymbolSetProgress(int percent); #ifdef __cplusplus } diff --git a/x64_dbg_dbg/addrinfo.cpp b/x64_dbg_dbg/addrinfo.cpp index b12144fe..bbcffe29 100644 --- a/x64_dbg_dbg/addrinfo.cpp +++ b/x64_dbg_dbg/addrinfo.cpp @@ -95,7 +95,7 @@ bool modload(uint base, uint size, const char* fullpath) strcpy(info.name, name); _strlwr(info.name); modinfo.push_back(info); - symbolupdategui(); + symbolloadmodule(&info); return true; } @@ -107,6 +107,7 @@ bool modunload(uint base) if(modinfo.at(i).base==base) { modinfo.erase(modinfo.begin()+i); + symbolunloadmodule(base); return true; } } @@ -115,7 +116,8 @@ bool modunload(uint base) void modclear() { - modinfo.clear(); + std::vector().swap(modinfo); + symbolclear(); } bool modnamefromaddr(uint addr, char* modname, bool extension) diff --git a/x64_dbg_dbg/debugger.cpp b/x64_dbg_dbg/debugger.cpp index ab95b413..c6b0e9d6 100644 --- a/x64_dbg_dbg/debugger.cpp +++ b/x64_dbg_dbg/debugger.cpp @@ -209,7 +209,7 @@ static void cbMemoryBreakpoint(void* ExceptionAddress) wait(WAITID_RUN); } -BOOL CALLBACK SymRegisterCallbackProc64(HANDLE hProcess, ULONG ActionCode, ULONG64 CallbackData, ULONG64 UserContext) +static BOOL CALLBACK SymRegisterCallbackProc64(HANDLE hProcess, ULONG ActionCode, ULONG64 CallbackData, ULONG64 UserContext) { UNREFERENCED_PARAMETER(hProcess); UNREFERENCED_PARAMETER(UserContext); @@ -217,12 +217,56 @@ BOOL CALLBACK SymRegisterCallbackProc64(HANDLE hProcess, ULONG ActionCode, ULONG switch (ActionCode) { case CBA_EVENT: + { evt=(PIMAGEHLP_CBA_EVENT)CallbackData; - dprintf("%s", (PTSTR)evt->desc); - break; + const char* text=(const char*)evt->desc; + int len=strlen(text); + bool suspress=false; + for(int i=0; ihProcess, 0, false); //initialize symbols SymRegisterCallback64(fdProcessInfo->hProcess, SymRegisterCallbackProc64, 0); SymLoadModuleEx(fdProcessInfo->hProcess, CreateProcessInfo->hFile, DebugFileName, 0, (DWORD64)base, 0, 0, 0); @@ -629,7 +674,6 @@ static DWORD WINAPI threadDebugLoop(void* lpParameter) SymCleanup(fdProcessInfo->hProcess); dbclose(); modclear(); - GuiSymbolUpdateList(0, 0); //empty the symbol list GuiSetDebugState(stopped); dputs("debugging stopped!"); varset("$hp", 0, true); @@ -1512,6 +1556,7 @@ static void cbAttachDebugger() static DWORD WINAPI threadAttachLoop(void* lpParameter) { + lock(WAITID_STOP); bIsAttached=true; bSkipExceptions=false; uint pid=(uint)lpParameter; @@ -1520,7 +1565,6 @@ static DWORD WINAPI threadAttachLoop(void* lpParameter) //do some init stuff bFileIsDll=IsFileDLL(szFileName, 0); BridgeSettingSet("Recent Files", "path", szFileName); - lock(WAITID_STOP); ecount=0; //NOTE: set custom handlers SetCustomHandler(UE_CH_CREATEPROCESS, (void*)cbCreateProcess); diff --git a/x64_dbg_dbg/simplescript.cpp b/x64_dbg_dbg/simplescript.cpp index 1c713883..92aa63c1 100644 --- a/x64_dbg_dbg/simplescript.cpp +++ b/x64_dbg_dbg/simplescript.cpp @@ -70,7 +70,7 @@ static bool scriptcreatelinemap(const char* filename) char temp[256]=""; LINEMAPENTRY entry; memset(&entry, 0, sizeof(entry)); - linemap.clear(); + std::vector().swap(linemap); for(int i=0,j=0; i().swap(linemap); return false; } int foundlabel=scriptlabelfind(cur.u.label); @@ -147,7 +147,7 @@ static bool scriptcreatelinemap(const char* filename) char message[256]=""; sprintf(message, "Duplicate label \"%s\" detected on lines %d and %d!", cur.u.label, foundlabel, i+1); GuiScriptError(0, message); - linemap.clear(); + std::vector().swap(linemap); return false; } } @@ -182,7 +182,7 @@ static bool scriptcreatelinemap(const char* filename) char message[256]=""; sprintf(message, "Invalid branch label \"%s\" detected on line %d!", cur.u.branch.branchlabel, i+1); GuiScriptError(0, message); - linemap.clear(); + std::vector().swap(linemap); return false; } } @@ -396,7 +396,7 @@ static DWORD WINAPI scriptLoadThread(void* filename) { GuiScriptClear(); scriptIp=0; - scriptbplist.clear(); //clear breakpoints + std::vector().swap(scriptbplist); //clear breakpoints bAbort=false; if(!scriptcreatelinemap((const char*)filename)) return 0; @@ -421,7 +421,7 @@ void scriptunload() { GuiScriptClear(); scriptIp=0; - scriptbplist.clear(); //clear breakpoints + std::vector().swap(scriptbplist); //clear breakpoints bAbort=false; } diff --git a/x64_dbg_dbg/symbolinfo.cpp b/x64_dbg_dbg/symbolinfo.cpp index 9783de11..7b57ab79 100644 --- a/x64_dbg_dbg/symbolinfo.cpp +++ b/x64_dbg_dbg/symbolinfo.cpp @@ -2,18 +2,36 @@ #include "debugger.h" #include "console.h" -static BOOL CALLBACK EnumSymProc(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext) +static struct INTERNALSYMBOLMODULEINFO +{ + uint base; + char name[MAX_MODULE_SIZE]; + std::vector symbols; +}; + +static std::vector modList; + +static BOOL CALLBACK EnumSymbols(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext) { return TRUE; } -#ifdef _WIN64 -static BOOL CALLBACK EnumModules(PCTSTR ModuleName, DWORD64 BaseOfDll, PVOID UserContext) -#else -static BOOL CALLBACK EnumModules(PCTSTR ModuleName, ULONG BaseOfDll, PVOID UserContext) -#endif //_WIN64 +void symbolloadmodule(MODINFO* modinfo) { - return TRUE; + INTERNALSYMBOLMODULEINFO curModule; + memset(&curModule, 0, sizeof(curModule)); + curModule.base=modinfo->base; + sprintf(curModule.name, "%s%s", modinfo->name, modinfo->extension); + modList.push_back(curModule); +} + +void symbolunloadmodule(uint base) +{ +} + +void symbolclear() +{ + std::vector().swap(modList); } void symbolupdategui() diff --git a/x64_dbg_dbg/symbolinfo.h b/x64_dbg_dbg/symbolinfo.h index 99aa42b9..272153b3 100644 --- a/x64_dbg_dbg/symbolinfo.h +++ b/x64_dbg_dbg/symbolinfo.h @@ -2,7 +2,11 @@ #define _SYMBOLINFO_H #include "_global.h" +#include "addrinfo.h" +void symbolloadmodule(MODINFO* modinfo); +void symbolunloadmodule(uint base); +void symbolclear(); void symbolupdategui(); #endif //_SYMBOLINFO_H diff --git a/x64_dbg_gui/Project/Src/BasicView/SymbolView.cpp b/x64_dbg_gui/Project/Src/BasicView/SymbolView.cpp index 25506bf8..3673b759 100644 --- a/x64_dbg_gui/Project/Src/BasicView/SymbolView.cpp +++ b/x64_dbg_gui/Project/Src/BasicView/SymbolView.cpp @@ -60,7 +60,8 @@ SymbolView::SymbolView(QWidget *parent) : connect(Bridge::getBridge(), SIGNAL(clearLog()), this, SLOT(clearSymbolLogSlot())); connect(Bridge::getBridge(), SIGNAL(clearSymbolLog()), this, SLOT(clearSymbolLogSlot())); connect(mModuleList, SIGNAL(selectionChangedSignal(int)), this, SLOT(moduleSelectionChanged(int))); - + connect(Bridge::getBridge(), SIGNAL(updateSymbolList(int,SYMBOLMODULEINFO*)), this, SLOT(updateSymbolList(int,SYMBOLMODULEINFO*))); + connect(Bridge::getBridge(), SIGNAL(setSymbolProgress(int)), ui->symbolProgress, SLOT(setValue(int))); emit mModuleList->selectionChangedSignal(0); } diff --git a/x64_dbg_gui/Project/Src/Bridge/Bridge.cpp b/x64_dbg_gui/Project/Src/Bridge/Bridge.cpp index ce9581b1..a23de214 100644 --- a/x64_dbg_gui/Project/Src/Bridge/Bridge.cpp +++ b/x64_dbg_gui/Project/Src/Bridge/Bridge.cpp @@ -135,6 +135,21 @@ void Bridge::emitUpdateSymbolList(int module_count, SYMBOLMODULEINFO* modules) emit updateSymbolList(module_count, modules); } +void Bridge::emitAddMsgToSymbolLog(QString msg) +{ + emit addMsgToSymbolLog(msg); +} + +void Bridge::emitClearSymbolLog() +{ + emit clearSymbolLog(); +} + +void Bridge::emitSetSymbolProgress(int progress) +{ + emit setSymbolProgress(progress); +} + /************************************************************************************ Static Functions @@ -248,8 +263,7 @@ __declspec(dllexport) void* _gui_sendmessage(GUIMSG type, void* param1, void* pa case GUI_SCRIPT_SETIP: { - int_t arg=(int_t)param1; - Bridge::getBridge()->emitScriptSetIp((int)arg); + Bridge::getBridge()->emitScriptSetIp((int)(int_t)param1); } break; @@ -289,6 +303,24 @@ __declspec(dllexport) void* _gui_sendmessage(GUIMSG type, void* param1, void* pa } break; + case GUI_SYMBOL_LOG_ADD: + { + Bridge::getBridge()->emitAddMsgToSymbolLog(QString(reinterpret_cast(param1))); + } + break; + + case GUI_SYMBOL_LOG_CLEAR: + { + Bridge::getBridge()->emitClearSymbolLog(); + } + break; + + case GUI_SYMBOL_SET_PROGRESS: + { + Bridge::getBridge()->emitSetSymbolProgress((int)(int_t)param1); + } + break; + default: { } diff --git a/x64_dbg_gui/Project/Src/Bridge/Bridge.h b/x64_dbg_gui/Project/Src/Bridge/Bridge.h index b5a60ab6..f7f2370e 100644 --- a/x64_dbg_gui/Project/Src/Bridge/Bridge.h +++ b/x64_dbg_gui/Project/Src/Bridge/Bridge.h @@ -43,6 +43,9 @@ public: void emitScriptMessage(QString message); int emitScriptQuestion(QString message); void emitUpdateSymbolList(int module_count, SYMBOLMODULEINFO* modules); + void emitAddMsgToSymbolLog(QString msg); + void emitClearSymbolLog(); + void emitSetSymbolProgress(int progress); void* winId; QWidget* scriptView; @@ -60,8 +63,6 @@ signals: void updateCPUTitle(QString modname); void setInfoLine(int line, QString text); void dumpAt(int_t va); - void addMsgToSymbolLog(QString msg); - void clearSymbolLog(); void scriptAdd(int count, const char** lines); void scriptClear(); @@ -73,6 +74,9 @@ signals: void scriptQuestion(QString message); void updateSymbolList(int module_count, SYMBOLMODULEINFO* modules); + void addMsgToSymbolLog(QString msg); + void clearSymbolLog(); + void setSymbolProgress(int progress); public slots: