v16 = 280;
  sub_4085C0(&v12);
  sub_4016A0(&unk_431C34, 6);
  v16 = 90;
  sub_4085C0(&v12);
  v10 = v15 < 0x10;
  *((_DWORD *)v2 + 163) = 8;
  if ( !v10 )
    j__free(v13);

看完了之后我们知道了真正做的是dispatch.dll中的init和uninit,下面我们再来看消息处理:
void ****sub_401C60()
{
  return &off_4316D0;
}
.rdata:004316D0 off_4316D0      dd offset off_432340    ; DATA XREF: sub_401C60o
.rdata:004316D4                 dd offset dword_4316D8
.rdata:004316D8 dword_4316D8    dd 113h                 ; DATA XREF: .rdata:004316D4o
.rdata:004316DC                 dd 0
.rdata:004316E0                 dd 0
.rdata:004316E4                 dd 0
.rdata:004316E8                 dd 11h
.rdata:004316EC                 dd offset OnTimer
.rdata:004316F0                 dd 112h
.rdata:004316F4                 dd 0
.rdata:004316F8                 dd 0
.rdata:004316FC                 dd 0
.rdata:00431700                 dd 1Bh
.rdata:00431704                 dd offset OnSysCommand
。。。。。。。。。。。

先来看MFC里的相关知识,来说明这里为何这么做:
我们每添加一个消息,都会在消息映射里增加一条,例如
BEGIN_MESSAGE_MAP(CtestmfcDlg, CDialogEx)
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_BN_CLICKED(IDOK, &CtestmfcDlg::OnBnClickedOk)
        ON_NOTIFY(NM_RCLICK, IDC_LIST1, &CtestmfcDlg::OnNMRClickList1)
END_MESSAGE_MAP()
而这里的第一行和最后一行为宏,对应GetMessageMap函数和结构体
struct AFX_MSGMAP
{
        const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();
        const AFX_MSGMAP_ENTRY* lpEntries;
};
struct AFX_MSGMAP_ENTRY
{
        UINT nMessage;   // windows message
        UINT nCode;      // control code or WM_NOTIFY code
        UINT nID;        // control ID (or 0 for windows messages)
        UINT nLastID;    // used for entries specifying a range of control id's
        UINT_PTR nSig;       // signature type (action) or pointer to message #
        AFX_PMSG pfn;    // routine to call (or special value)
};
从这里很显然的可以看到如何对应上消息响应了。。。。。。。不用解释了吧

如此,对照前面说的windows消息代码,结合exescope查看控件id,可以吧004316D8开始的AFX_MSGMAP_ENTRY标注成消息回调函数:
OnTimer
OnSysCommand
OnPaint
OnDragIcon
OnSearch
OnSelectSource
OnTcnSelChange
OnLvnColumnClick
OnNMLVRClickList
OnNMTCRClickList
OnNMLVDoubleClick
OnSize

现在你来告诉我,那些函数最重要??

https://www.0xaa55.com/forum.php?mod=viewthread&tid=1390

相关文章:

  • 2021-07-24
  • 2022-12-23
  • 2021-10-21
  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
猜你喜欢
  • 2022-12-23
  • 2021-08-08
  • 2022-12-23
  • 2022-12-23
  • 2021-11-16
  • 2022-01-27
  • 2021-06-01
相关资源
相似解决方案