能力值:
( LV7,RANK:100 )
2 楼
能力值:
( LV4,RANK:50 )
3 楼
有个开源的MFCSPY不错的
能力值:
( LV7,RANK:100 )
4 楼
没用过
能力值:
( LV2,RANK:10 )
5 楼
下载收藏,上次也下了按钮时间查找工具
能力值:
( LV8,RANK:130 )
6 楼
支持一下~那个动态的工具用着有些蛋疼。
能力值:
( LV6,RANK:80 )
7 楼
6年前,还没加入看雪就是高手了,膜拜加收藏。
静态链接的支持否?
能力值:
( LV3,RANK:30 )
8 楼
6年前,还不会上网的时候就是高手了 膜拜+收藏
能力值:
( LV12,RANK:320 )
9 楼
2年前.我还没接触过计算机......
能力值:
( LV9,RANK:170 )
10 楼
期待更新一下源码可以支持更多mfcxx.dll啊,包括unicode版本
能力值:
( LV7,RANK:100 )
11 楼
刚才测试了几个vs2005的程序,发现有几个确实不显示,看来mfc有点变化。等有空的时候再更新吧。
能力值:
( LV2,RANK:10 )
12 楼
不错.有用就很好.
能力值:
( LV2,RANK:10 )
13 楼
下载了才发现没码 :-)
能力值:
( LV2,RANK:10 )
14 楼
求有码版本。。。
能力值:
( LV13,RANK:290 )
15 楼
这个软件其实就是通过得到MFC里面的一个关于消息、控件和函数地址的映射表来实现的,是在MFC42.DLL中的一个固定地方。找到那个固定地址,通过进程间的HOOK就可以得到所需要的数据,还是比较简单的。具体如下图:
还有一个类似的工具,也传上来把。
MFC按钮入口地址定位器.rar
上传的附件:
能力值:
( LV7,RANK:100 )
16 楼
这个工具不是通过hook来实现的,完全是静态的。对于vc6程序,识别率是100%
原理是识别BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP之间的代码
比如:
BEGIN_MESSAGE_MAP(CLoaderDlg, CDialog)
//{{AFX_MSG_MAP(CLoaderDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(ID_SELECT, OnSelect)
ON_BN_CLICKED(IDC_SELECT_PROCESS, OnSelectProcess)
//}}AFX_MSG_MAP
END_MESSAGE_MAP() 将宏完全展开后,代码如下:
const AFX_MSGMAP* PASCAL CLoaderDlg::_GetBaseMessageMap()
{
return &CDialog::messageMap;
}
const AFX_MSGMAP* CLoaderDlg::GetMessageMap() const
{
return &CLoaderDlg::messageMap;
}
AFX_COMDAT AFX_DATADEF const AFX_MSGMAP CLoaderDlg::messageMap =
{
&CLoaderDlg::_GetBaseMessageMap,
&CLoaderDlg::_messageEntries[0]
};
AFX_COMDAT const AFX_MSGMAP_ENTRY CLoaderDlg::_messageEntries[] =
{
{WM_PAINT, 0, 0, 0, AfxSig_vv, &OnPaint},
{WM_QUERYDRAGICON, 0, 0, 0, AfxSig_hv, &OnQueryDragIcon},
{WM_COMMAND, (WORD)BN_CLICKED, (WORD)ID_SELECT, (WORD)ID_SELECT, AfxSig_vv, (AFX_PMSG)&OnSelect },
{WM_COMMAND, (WORD)BN_CLICKED, (WORD)IDC_SELECT_PROCESS, (WORD)IDC_SELECT_PROCESS, AfxSig_vv, (AFX_PMSG)&OnSelectProcess },
{0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }
}; _messageEntries 就是当前wndclass的所有消息列表
然后在整个exe中搜索符合上述描述的数据即可。
AFX_MSGMAP_ENTRY 的结构:
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 nSig; // signature type (action) or pointer to message #
AFX_PMSG pfn; // routine to call (or special value)
}; 事实上,不光是MFC的消息,整个MFC程序都可以完全还原出来
能力值:
( LV9,RANK:170 )
17 楼
不了解MFC,看来我是没法自己动手实现MFCXX(VC6-VC2010)的兼容性更新了
能力值:
( LV2,RANK:10 )
18 楼
期待新版。。每次进到mfc就绕乱了-_-!!
能力值:
( LV9,RANK:170 )
19 楼
好工具,下个来收藏。。。。
能力值:
( LV2,RANK:10 )
20 楼
继续等更新版本哈哈
能力值:
( LV2,RANK:10 )
21 楼
6年前,刚学会打字,
能力值:
( LV2,RANK:10 )
22 楼
对VC5编译的好像没用.
要是能对SDK,和MFC的全系列都支持就好了:)
不过已经很好用了,谢谢!
能力值:
( LV2,RANK:10 )
23 楼
才发现这么好用的一个利器。多谢分享。
能力值:
( LV15,RANK:670 )
24 楼
额滴神呀,04年的时候正是 MFC 的黄金岁月。
LZ 当年发达了吧。
能力值:
( LV9,RANK:140 )
25 楼
恩 估计是了 期待mfc 2010版本的