imagemodule.h
来自「Windows 图形编程 书籍」· C头文件 代码 · 共 63 行
H
63 行
#pragma once
//-----------------------------------------------------------------------------------//
// Windows Graphics Programming: Win32 GDI and DirectDraw //
// ISBN 0-13-086985-6 //
// //
// Written by Yuan, Feng www.fengyuan.com //
// Copyright (c) 2000 by Hewlett-Packard Company www.hp.com //
// Published by Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com //
// //
// FileName : imagemodule.h //
// Description: Using ImageHlp API for debug symbol querying //
// Version : 1.00.000, May 31, 2000 //
//-----------------------------------------------------------------------------------//
// Debug symbol handling for a single module
class KImageModule
{
HANDLE m_hProcess;
bool m_bLoaded;
DWORD m_imagebase_default; // default image base address in DLL/SYS
DWORD m_imagebase_loaded; // actual loaded image base
DWORD m_symbolbase; // base address for loaded symbol
TCHAR m_modulename[64];
IMAGEHLP_SYMBOL m_is[10]; // leave enough space for the name
HWND m_hOutput;
LOADED_IMAGE m_image;
bool m_bDecoratedNames;
bool m_bShowFPO;
int m_nCount;
bool m_bForPogy; // Chapter 4: APY Spy
public:
KImageModule(HWND hOutput);
virtual ~KImageModule();
bool Load(char * filename, char * sympath);
void Unload(void);
const IMAGEHLP_SYMBOL * ImageGetSymbol(const char * name);
bool LoadSystemModule(char * module, char * extension);
BOOL EnumSymbolsCallback(LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize) ;
void ShowFPO(ULONG SymbolAddress);
void TranslateName(LPSTR SymbolName);
const unsigned char * GetImagePointer(unsigned symbva);
const unsigned char * Address2ImagePointer(unsigned addr);
void EnumerateSymbols(bool bForPogy);
void ShowSysCallTable(const char * tablename, unsigned base);
void va_Output(const char * format, va_list argptr);
void Output(const char * format, ...);
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?