![](https://csdnimg.cn/release/download_crawler_static/86274202/bg1.jpg)
W32Dasm 使用介绍
本节主要介绍反汇编。在进行反汇编前,建议用 FileInfo,PEiD 等侦测工具分析一下文
件是否加壳。如果加壳,就需利用后面章节的脱壳技术脱壳,脱壳后再反汇编。
1.1 准备工作
在此以一个 Microsoft Visual C++ 6.0 编译程序 ReverseMe 进行反汇编,以讲述如何从反
汇编代码清单中理解程序的功能。ReverseMe 是一个基本的 Win32 程序,该程序创建一个普
通应用程序窗口,有关程序运行机理请参考 Win32 编程的相关资料。源码如下:
#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("chap231") ;
HWND hwnd ; // 窗口句柄
MSG msg ; // MSG结构
WNDCLASS wndclass ; // 窗口类结构
// 填充窗口类结构
wndclass.style = CS_HREDRAW | CS_VREDRAW ; // 窗口类风格
wndclass.lpfnWndProc = WndProc ; // 指向窗口函数指针
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ; // 实例句柄
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; // 窗口图标
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; // 窗口使用的光标
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //窗口背景图刷
wndclass.lpszMenuName = NULL ; // 菜单资源名指针
wndclass.lpszClassName = szAppName ; // 窗口类名指针
if (!RegisterClass (&wndclass)) // 注册窗口类
return 0 ;
//创建窗口
hwnd = CreateWindow (szAppName, // 指定窗口类名
TEXT ("静态分析技术实例") , // 指向窗口标题