void __userpurge CTableColCalc::AdjustForCol(CTableColCalc *this@<ecx>, int a2@<eax>, int a3@<esi>, const struct CWidthUnitValue *a4, int a5, struct CCalcInfo *a6, int a7) { int v7; // ST04_4@1
其中有提到: In order to leak the base address of mshtml.dll under IE9, the idea is to read the vTable of an object: mshtml!CButtonLayout. This table is set at a fixed offset inside each version of the DLL, so knowing it leads to knowing the base address.
---------- Mona command started on 2022-10-27 22:17:13 (v2.0, rev 618) ---------- [+] Processing arguments and criteria - Pointer access level : X - Only querying modules mshtml.dll [+] Generating module info table, hang on... - Processing modules - Done. Let's rock 'n roll. [+] Preparing output file '_rop_progress_iexplore.exe_2592.log' - (Re)setting logfile _rop_progress_iexplore.exe_2592.log [+] Progress will be written to _rop_progress_iexplore.exe_2592.log [+] Maximum offset : 40 [+] (Minimum/optional maximum) stackpivot distance : 8 [+] Max nr of instructions : 6 [+] Split output into module rop files ? False [+] Going to create rop chains for all relevant/supported techniques: [+] Enumerating 22 endings in 1 module(s)... - Querying module mshtml.dll
Traceback (most recent call last): File "mona.py", line 19195, in main commands[command].parseProc(opts) File "mona.py", line 12147, in procROP findROPGADGETS(modulecriteria,criteria,endings,maxoffset,depth,split,thedistance,fast,mode,sortedprint,technique) File "mona.py", line 6380, in findROPGADGETS found_opcodes = searchInModule(search,thismodule,criteria) File "mona.py", line 5334, in searchInModule return searchInRange(sequences, start, end, criteria) File "mona.py", line 5214, in searchInRange dbg.getMemoryPages() File "C:\Program Files\Debugging Tools for Windows (x86)\windbglib.py", line 1063, in getMemoryPages size = int(info[3].replace('`', ''), base=16) ValueError: invalid literal for int() with base 16: 'MEM_IMAGE' ```