Ho scritto una DLL C non Qt compilata con mingw usando l'IDE QtCreator.Come eseguire il debug di un progetto DLL utilizzando QtCreator?
Quando si inserisce la DLL in un processo, la DLL causa il blocco di tale processo su una determinata riga di codice. Ho trovato questa linea colpevole attraverso l'uso di OutputDebugString
. So come correggere la linea e la DLL funziona quando quella linea viene modificata. Tuttavia, allo scopo di imparare a usare un debugger, ho lasciato la linea spezzata e non modificata.
Come utilizzare il debugger QtCreator per individuare la stessa linea esatta che causa il problema? Quando QtCreator è impostato per la compilazione in modalità debug, premere F5 risultati nella seguente finestra di dialogo, perché non c'è EXE:
Scrivere un piccolo programma che si collega alla libreria che riproduce il problema ed eseguirlo nel debugger. O cosa intendi esattamente con "iniettare"? –
@FrankOsterfeld: http://en.wikipedia.org/wiki/DLL_injection È un file DLL di basso livello che modifica la memoria della vittima procces. Non riesco a collegarmi alla libreria a causa di come funziona l'iniezione DLL. Perché sto modificando la memoria di un altro processo? Sto modificando la memoria di un progetto open source chiamato Assault Cube. Lo scopo è quello di esplorare e imparare di più su come il codice C è tradotto in ASM e su come i computer lavorano a livello inferiore. – user2924308
Bene, puoi semplicemente digitare il nome dell'eseguibile, che usa la tua DLL e gli argomenti nella finestra sopra e QtCreator farà il resto per te. – Lol4t0