zoukankan      html  css  js  c++  java
  • 零基础逆向工程30_Win32_04_资源文件_消息断点

    1 资源文件,创建对话框
    详细步骤:

    1、创建一个空的Win32应用程序
    
    2、在VC6中新增资源
    File ->  New  -> Resource Script
    创建成功后会新增2个文件:xxx.rc 和 resource.h
    
    3、打开新创建的xxx.rc文件,在资源窗口新增一个对话框,并在对话框上新增2个按钮.
    
    4、打开resource.h文件,观察变化:
    #define IDD_DIALOG_MAIN                 101
    #define IDC_BUTTON_OK                   1000
    #define IDC_BUTTON_OUT                  1001
    
    5、通过DialogBox创建对话框
    
    
    INT_PTR DialogBox(
      HINSTANCE hInstance,  // handle to module
      LPCTSTR lpTemplate,   // dialog box template
      HWND hWndParent,      // handle to owner window
      DLGPROC lpDialogFunc  // dialog box procedure
    );
    //----参考MSDN
    
    6、定义Dialog消息处理函数
    
    BOOL CALLBACK DialogProc(
    						 HWND hwndDlg,  // handle to dialog box
    						 UINT uMsg,     // message
    						 WPARAM wParam, // first message parameter
    						 LPARAM lParam  // second message parameter
    						 )
    {
    
    	switch(uMsg)
    	{
    	case  WM_INITDIALOG :
    
    		MessageBox(NULL,TEXT("WM_INITDIALOG"),TEXT("INIT"),MB_OK);
    
    		return TRUE ;
    
    	case  WM_COMMAND :
    
    		switch (LOWORD (wParam))
    		{
    		case   IDC_BUTTON_OK :
    
    			MessageBox(NULL,TEXT("IDC_BUTTON_OK"),TEXT("OK"),MB_OK);
    
    			return TRUE;
    
    		case   IDC_BUTTON_OUT:
    
    			MessageBox(NULL,TEXT("IDC_BUTTON_OUT"),TEXT("OUT"),MB_OK);
    
    			EndDialog(hwndDlg, 0);
    
    			return TRUE;
    		}
    		break ;
        }
    
    	return FALSE ;
    }
    
    说明:
    
    1、处理过的消息,返回TRUE
    
    2、不处理的消息,返回FALSE
    

    2 按钮、文本框的使用

    1、获取文本框句柄:
    HWND hEditUser = GetDlgItem(hDlg,IDC_EDIT_USER);	
    hDlg	//对话框句柄
    IDC_EDIT_USER	//编号
    	
    2、获取文本框内容	
    TCHAR szUserBuff[0x50];	
    GetWindowText(hEditUser,szUserBuff,0x50);	
    hEditUser	//文本框句柄
    szUserBuff	//输出缓冲区
    

    3 为项目添加图标

    1、加载图标		
    HICON hIcon;		
    hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));		
    hAppInstance	//应用程序句柄	
    IDI_ICON	//图标编号		
    MAKEINTRESOURCE	//用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针	
    		
    2、设置图标:		
    case WM_INITDIALOG :		
    		hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));
    		//设置图标
    		SendMessage(hDlg,WM_SETICON,ICON_BIG,(DWORD)hIcon);
    		SendMessage(hDlg,WM_SETICON,ICON_SMALL,(DWORD)hIcon);
    		
    		return TRUE;
    
    

    4 对话框回调函数的定位
    思路:根据前面三节逆向内容的经验,很容易判断。
    5 OD消息断点的使用
    思路:打开OD的windows的窗口,在Button上设置消息断点LButtonUp,然后设置内存断点。能够快速过系统函数。

  • 相关阅读:
    Java中抽象类和接口的区别
    servlet的转发与重定向
    JSP知识点
    过滤器与拦截器
    java关键字 super 和 this
    oracle 基础
    java 集合
    java 内部类
    java 数组详解
    图,深度优先遍历与广度优先遍历
  • 原文地址:https://www.cnblogs.com/flatcc/p/7694793.html
Copyright © 2011-2022 走看看