能力值:
( LV2,RANK:10 )
|
-
-
51 楼
刚刚看完了代码,相当精彩。非常有创意,和以前的此类工具思路完全不同,支持!
|
能力值:
( LV7,RANK:100 )
|
-
-
52 楼
最初由 great123 发布 使用的是你的最新的版本. 上次哪个【关闭被Spy的程序的问题】操作系统是中文XPVLK+SP2,下面也是. 下面这个问题是,可以获得【注册】按钮的ID,但是无法在对话框的MSG中找到这个ID的小时入口
我看了一下,初步可以判定这个版本根本没有实现注册功能,只是个功能不全的demo版,应该是你付费他就会给你个完整版本的那种.你可以仔细研究一下.另外,如果不是demo版,那连壳都不加也真够大胆的
|
能力值:
( LV4,RANK:50 )
|
-
-
53 楼
我也写了一个东西DeMfc lite,只是半成品。我采用的是静态分析的方法。对比的结果我觉得,你的根据MessageMap Pump的方法可能漏了一些MessageMap
下面是分析你的MfcSpy.exe的结果
1.用MfcSpy分析
// Main Form
HWND: 000301CE
class:0012FE44(CDialog,size=0x60)
CDialog:CWnd:CCmdTarget:CObject
[+00]vtbl address=00403578(mfcspy.exe+003578)
[+04]CCmdTarget::m_dwRef=1
[+08]CCmdTarget::m_pOuterUnknown=00000000
[+0C]CCmdTarget::m_xInnerUnknown=00000000
[+10]CCmdTarget::m_xDispatch.m_vtbl=00000000
[+14]CCmdTarget::m_bResultExpected=00000001
[+18]CCmdTarget::m_xConnPtContainer.m_vtbl=00000000
[+1C]CCmdTarget::m_pModuleState=00135FF0
[+20]CWnd::m_hWnd=000301CE
[+24]CWnd::m_hWndOwner=00000000
[+28]CWnd::m_nFlags=00000018
[+2C]CWnd::m_pfnSuper=77E0D439
[+30]CWnd::m_nModalResult=FFFFFFFF
[+34]CWnd::m_pDropTarget=00000000
[+38]CWnd::m_pCtrlCont=00000000
[+3C]CWnd::m_pCtrlSite=00000000
[+40]CDialog::m_nIDHelp=00000066
[+44]CDialog::m_lpszTemplateName=00000066
[+48]CDialog::m_hDialogTemplate=00000000
[+4C]CDialog::m_lpDialogTemplate=00000000
[+50]CDialog::m_lpDialogInit=00000000
[+54]CDialog::m_pParentWnd=(CWnd*)00000000
[+58]CDialog::m_hWndTop=(HWND)00000000
[+5C]CDialog::m_pOccDialogInfo=00000000
[vtbl+00]GetRuntimeClass =00402098->5F4064BC(MFC42.DLL+0064BC)
[vtbl+04]destructor =004013D0(mfcspy.exe+0013D0)
[vtbl+08]Serialize =00401D00(mfcspy.exe+001D00)
[vtbl+0C]AssertValid =00401240(mfcspy.exe+001240)
[vtbl+10]Dump =00401D00(mfcspy.exe+001D00)
[vtbl+14]OnCmdMsg =00402092->5F4064EB(MFC42.DLL+0064EB)
[vtbl+18]OnFinalRelease =0040208C->5F418D39(MFC42.DLL+018D39)
[vtbl+1C]IsInvokeAllowed =00401F90->5F4187CB(MFC42.DLL+0187CB)
[vtbl+20]GetDispatchIID =00401F8A->5F4103E8(MFC42.DLL+0103E8)
[vtbl+24]GetTypeInfoCount =00401F84->5F40196C(MFC42.DLL+00196C)
[vtbl+28]GetTypeLibCache =00401F7E->5F40196C(MFC42.DLL+00196C)
[vtbl+2C]GetTypeLib =00401F78->5F45E645(MFC42.DLL+05E645)
[vtbl+30]GetMessageMap =00401420(mfcspy.exe+001420)
[vtbl+34]GetCommandMap =00401F72->5F45E6A6(MFC42.DLL+05E6A6)
[vtbl+38]GetDispatchMap =00401F6C->5F45E662(MFC42.DLL+05E662)
[vtbl+3C]GetConnectionMap =00401F66->5F45E6A0(MFC42.DLL+05E6A0)
[vtbl+40]GetInterfaceMap =00401F60->5F414CC3(MFC42.DLL+014CC3)
[vtbl+44]GetEventSinkMap =00401F5A->5F45E668(MFC42.DLL+05E668)
[vtbl+48]OnCreateAggregates =00401F54->5F401958(MFC42.DLL+001958)
[vtbl+4C]GetInterfaceHook =00401F4E->5F4103E8(MFC42.DLL+0103E8)
[vtbl+50]GetExtraConnectionPoints=00401F48->5F4103E8(MFC42.DLL+0103E8)
[vtbl+54]GetConnectionHook =00401F42->5F4103E8(MFC42.DLL+0103E8)
[vtbl+58]PreSubclassWindow =00402086->5F404448(MFC42.DLL+004448)
[vtbl+5C]Create =00402080->5F40AA5F(MFC42.DLL+00AA5F)
[vtbl+60]DestroyWindow =0040207A->5F4057B8(MFC42.DLL+0057B8)
[vtbl+64]PreCreateWindow =00402074->5F40C22D(MFC42.DLL+00C22D)
[vtbl+68]CalcWindowRect =0040206E->5F40C3ED(MFC42.DLL+00C3ED)
[vtbl+6C]OnToolHitTest =00402068->5F45C2E3(MFC42.DLL+05C2E3)
[vtbl+70]GetScrollBarCtrl =00402062->5F4103E8(MFC42.DLL+0103E8)
[vtbl+74]WinHelpA =0040205C->5F45C5BC(MFC42.DLL+05C5BC)
[vtbl+78]ContinueModal =00402056->5F414BFE(MFC42.DLL+014BFE)
[vtbl+7C]EndModalLoop =00402050->5F414C41(MFC42.DLL+014C41)
[vtbl+80]OnCommand =0040204A->5F402A8B(MFC42.DLL+002A8B)
[vtbl+84]OnNotify =00402044->5F403290(MFC42.DLL+003290)
[vtbl+88]GetSuperWndProcAddr =0040203E->5F404444(MFC42.DLL+004444)
[vtbl+8C]DoDataExchange =004013F0(mfcspy.exe+0013F0)
[vtbl+90]BeginModalState =00401BE0(mfcspy.exe+001BE0)
[vtbl+94]EndModalState =00401BF0(mfcspy.exe+001BF0)
[vtbl+98]PreTranslateMessage =00402038->5F414B8F(MFC42.DLL+014B8F)
[vtbl+9C]OnAmbientProperty =00402032->5F45E09F(MFC42.DLL+05E09F)
[vtbl+A0]WindowProc =0040202C->5F401ADD(MFC42.DLL+001ADD)
[vtbl+A4]OnWndMsg =00402026->5F401B21(MFC42.DLL+001B21)
[vtbl+A8]DefWindowProcA =00402020->5F401EDD(MFC42.DLL+001EDD)
[vtbl+AC]PostNcDestroy =0040201A->5F404448(MFC42.DLL+004448)
[vtbl+B0]OnChildNotify =00402014->5F4022BC(MFC42.DLL+0022BC)
[vtbl+B4]CheckAutoCenter =0040200E->5F40688B(MFC42.DLL+00688B)
[vtbl+B8]IsFrameWnd =00402008->5F40196C(MFC42.DLL+00196C)
[vtbl+BC]SetOccDialogInfo =00402002->5F45D6FC(MFC42.DLL+05D6FC)
[vtbl+C0]DoModal =00401FD2->5F414E8E(MFC42.DLL+014E8E)
[vtbl+C4]OnInitDialog =00401430(mfcspy.exe+001430)
[vtbl+C8]OnSetFont =00401FF6->5F405ABF(MFC42.DLL+005ABF)
[vtbl+CC]OnOK =00401660(mfcspy.exe+001660)
[vtbl+D0]OnCancel =00401FEA->5F45D90F(MFC42.DLL+05D90F)
[vtbl+D4]PreInitDialog =00401FE4->5F404448(MFC42.DLL+004448)
message map=00403498(mfcspy.exe+003498)
msg map entries at 004033D8(mfcspy.exe+0033D8)
OnMsg:WM_SYSCOMMAND(0112),func=00401520(mfcspy.exe+001520)
OnMsg:WM_PAINT(000f),func=004015A0(mfcspy.exe+0015A0)
OnMsg:WM_QUERYDRAGICON(0037),func=00401650(mfcspy.exe+001650)
OnCommand: notifycode=0000 id=03e9,func=00401670(mfcspy.exe+001670)
OnMsg:WM_LBUTTONUP(0202),func=00401840(mfcspy.exe+001840)
OnMsg:WM_MOUSEMOVE(0200),func=004019C0(mfcspy.exe+0019C0)
OnMsg:0401,func=004017B0(mfcspy.exe+0017B0)
// Help Form
HWND: 000D01EA
class:0012FB5C(CDialog,size=0x60)
CDialog:CWnd:CCmdTarget:CObject
[+00]vtbl address=004034A0(mfcspy.exe+0034A0)
[+04]CCmdTarget::m_dwRef=1
[+08]CCmdTarget::m_pOuterUnknown=00000000
[+0C]CCmdTarget::m_xInnerUnknown=00000000
[+10]CCmdTarget::m_xDispatch.m_vtbl=00000000
[+14]CCmdTarget::m_bResultExpected=00000001
[+18]CCmdTarget::m_xConnPtContainer.m_vtbl=00000000
[+1C]CCmdTarget::m_pModuleState=00135FF0
[+20]CWnd::m_hWnd=000D01EA
[+24]CWnd::m_hWndOwner=00000000
[+28]CWnd::m_nFlags=00000018
[+2C]CWnd::m_pfnSuper=77E0D439
[+30]CWnd::m_nModalResult=FFFFFFFF
[+34]CWnd::m_pDropTarget=00000000
[+38]CWnd::m_pCtrlCont=00000000
[+3C]CWnd::m_pCtrlSite=00000000
[+40]CDialog::m_nIDHelp=00000064
[+44]CDialog::m_lpszTemplateName=00000064
[+48]CDialog::m_hDialogTemplate=00000000
[+4C]CDialog::m_lpDialogTemplate=00000000
[+50]CDialog::m_lpDialogInit=00000000
[+54]CDialog::m_pParentWnd=(CWnd*)00000000
[+58]CDialog::m_hWndTop=(HWND)00000000
[+5C]CDialog::m_pOccDialogInfo=00000000
[vtbl+00]GetRuntimeClass =00402098->5F4064BC(MFC42.DLL+0064BC)
[vtbl+04]destructor =004012E0(mfcspy.exe+0012E0)
[vtbl+08]Serialize =00401D00(mfcspy.exe+001D00)
[vtbl+0C]AssertValid =00401240(mfcspy.exe+001240)
[vtbl+10]Dump =00401D00(mfcspy.exe+001D00)
[vtbl+14]OnCmdMsg =00402092->5F4064EB(MFC42.DLL+0064EB)
[vtbl+18]OnFinalRelease =0040208C->5F418D39(MFC42.DLL+018D39)
[vtbl+1C]IsInvokeAllowed =00401F90->5F4187CB(MFC42.DLL+0187CB)
[vtbl+20]GetDispatchIID =00401F8A->5F4103E8(MFC42.DLL+0103E8)
[vtbl+24]GetTypeInfoCount =00401F84->5F40196C(MFC42.DLL+00196C)
[vtbl+28]GetTypeLibCache =00401F7E->5F40196C(MFC42.DLL+00196C)
[vtbl+2C]GetTypeLib =00401F78->5F45E645(MFC42.DLL+05E645)
[vtbl+30]GetMessageMap =00401320(mfcspy.exe+001320)
[vtbl+34]GetCommandMap =00401F72->5F45E6A6(MFC42.DLL+05E6A6)
[vtbl+38]GetDispatchMap =00401F6C->5F45E662(MFC42.DLL+05E662)
[vtbl+3C]GetConnectionMap =00401F66->5F45E6A0(MFC42.DLL+05E6A0)
[vtbl+40]GetInterfaceMap =00401F60->5F414CC3(MFC42.DLL+014CC3)
[vtbl+44]GetEventSinkMap =00401F5A->5F45E668(MFC42.DLL+05E668)
[vtbl+48]OnCreateAggregates =00401F54->5F401958(MFC42.DLL+001958)
[vtbl+4C]GetInterfaceHook =00401F4E->5F4103E8(MFC42.DLL+0103E8)
[vtbl+50]GetExtraConnectionPoints=00401F48->5F4103E8(MFC42.DLL+0103E8)
[vtbl+54]GetConnectionHook =00401F42->5F4103E8(MFC42.DLL+0103E8)
[vtbl+58]PreSubclassWindow =00402086->5F404448(MFC42.DLL+004448)
[vtbl+5C]Create =00402080->5F40AA5F(MFC42.DLL+00AA5F)
[vtbl+60]DestroyWindow =0040207A->5F4057B8(MFC42.DLL+0057B8)
[vtbl+64]PreCreateWindow =00402074->5F40C22D(MFC42.DLL+00C22D)
[vtbl+68]CalcWindowRect =0040206E->5F40C3ED(MFC42.DLL+00C3ED)
[vtbl+6C]OnToolHitTest =00402068->5F45C2E3(MFC42.DLL+05C2E3)
[vtbl+70]GetScrollBarCtrl =00402062->5F4103E8(MFC42.DLL+0103E8)
[vtbl+74]WinHelpA =0040205C->5F45C5BC(MFC42.DLL+05C5BC)
[vtbl+78]ContinueModal =00402056->5F414BFE(MFC42.DLL+014BFE)
[vtbl+7C]EndModalLoop =00402050->5F414C41(MFC42.DLL+014C41)
[vtbl+80]OnCommand =0040204A->5F402A8B(MFC42.DLL+002A8B)
[vtbl+84]OnNotify =00402044->5F403290(MFC42.DLL+003290)
[vtbl+88]GetSuperWndProcAddr =0040203E->5F404444(MFC42.DLL+004444)
[vtbl+8C]DoDataExchange =00401310(mfcspy.exe+001310)
[vtbl+90]BeginModalState =00401BE0(mfcspy.exe+001BE0)
[vtbl+94]EndModalState =00401BF0(mfcspy.exe+001BF0)
[vtbl+98]PreTranslateMessage =00402038->5F414B8F(MFC42.DLL+014B8F)
[vtbl+9C]OnAmbientProperty =00402032->5F45E09F(MFC42.DLL+05E09F)
[vtbl+A0]WindowProc =0040202C->5F401ADD(MFC42.DLL+001ADD)
[vtbl+A4]OnWndMsg =00402026->5F401B21(MFC42.DLL+001B21)
[vtbl+A8]DefWindowProcA =00402020->5F401EDD(MFC42.DLL+001EDD)
[vtbl+AC]PostNcDestroy =0040201A->5F404448(MFC42.DLL+004448)
[vtbl+B0]OnChildNotify =00402014->5F4022BC(MFC42.DLL+0022BC)
[vtbl+B4]CheckAutoCenter =0040200E->5F40688B(MFC42.DLL+00688B)
[vtbl+B8]IsFrameWnd =00402008->5F40196C(MFC42.DLL+00196C)
[vtbl+BC]SetOccDialogInfo =00402002->5F45D6FC(MFC42.DLL+05D6FC)
[vtbl+C0]DoModal =00401FD2->5F414E8E(MFC42.DLL+014E8E)
[vtbl+C4]OnInitDialog =00401FFC->5F4063F4(MFC42.DLL+0063F4)
[vtbl+C8]OnSetFont =00401FF6->5F405ABF(MFC42.DLL+005ABF)
[vtbl+CC]OnOK =00401FF0->5F414C05(MFC42.DLL+014C05)
[vtbl+D0]OnCancel =00401FEA->5F45D90F(MFC42.DLL+05D90F)
[vtbl+D4]PreInitDialog =00401FE4->5F404448(MFC42.DLL+004448)
message map=004033D0(mfcspy.exe+0033D0)
msg map entries at 004033B8(mfcspy.exe+0033B8)
2.用DeMfc lite分析
ControlName ControlID Meaning MessageMap Ptr
ID_Help 0000E146 WM_COMMAND 00401ED0
CDialog 00000000 WM_SYSCOMMAND 00401520
CDialog 00000000 WM_PAINT 004015A0
CDialog 00000000 WM_QUERYDRAGICON 00401650
unknown 000003E9 WM_COMMAND 00401670
CDialog 00000000 WM_LBUTTONUP 00401840
CDialog 00000000 WM_MOUSEMOVE 004019C0
CDialog 00000000 WM_MOUSEMOVE 004017B0
CDialog 00000000 WM_SETCURSOR 00401C70
CDialog 00000000 WM_LBUTTONDOWN 00401C80
CDialog 00000000 WM_LBUTTONUP 00401CC0
CDialog 00000000 WM_LBUTTONUP 00000000
CDialog 00000000 WM_MOVE 00000000
CDialog 00000000 WM_CREATE 00000000
CDialog 00000000 WM_MOVE 00000000
CDialog 00000000 WM_CREATE 00000000
CDialog 00000000 WM_CREATE 00000000
CDialog 00000000 WM_DESTROY 00000000
CDialog 00000000 WM_CREATE 00000000
CDialog 00000000 WM_CREATE 00000000
对比显示,你还是漏了一些Message,比如
CDialog 00000000 WM_SETCURSOR 00401C70
|
能力值:
(RANK:10 )
|
-
-
54 楼
最初由 goldenegg 发布
我看了一下,初步可以判定这个版本根本没有实现注册功能,只是个功能不全的demo版,应该是你付费他就会给你个完整版本的那种.你可以仔细研究一下.另外,如果不是demo版,那连壳都不加也真够大胆的
哦,是这样的阿.
我是直接破解他软件本身了,把所有的限制都去掉了,本来说想看看他的注册机制的.
|
能力值:
( LV7,RANK:100 )
|
-
-
55 楼
最初由 小楼 发布 我也写了一个东西DeMfc lite,只是半成品。我采用的是静态分析的方法。对比的结果我觉得,你的根据MessageMap Pump的方法可能漏了一些MessageMap
下面是分析你的MfcSpy.exe的结果 1.用MfcSpy分析 [code] ........
没有漏,我的mfcspy只到窗口层的,如果有两个dlg,
那就不好意思你就必须spy两次。
你的那个东东看样子是搜索整个代码,这样把一些其它的也搞出来了。
比如就你说的那个WM_SETCURSOR,这是那个放大镜框的消息表,不是dialog的!
如果我把它显示出来了,那就反而错了。
因为我对那个放大镜框做了特殊限制
你可以打开两个mfcspy,用一个查另一个的放大镜框
你就看到了。
|
能力值:
( LV12,RANK:370 )
|
-
-
56 楼
我怎么今天才看到啊
牛啊!
很不错的工具,把MFC都揪出来了。不过,好像在混合编程的情况下就认不到了。
端个凳子,坐下的先。
|
能力值:
( LV2,RANK:10 )
|
-
-
57 楼
很好的东西
不过mfc写的破东西本身vc就附带了mfc的源代码
分析起来难度也不算特别大
不过这个工具的确很方便
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
最初由 great123 发布 在MFC的dll里面我直接下test的code段的内存访问断点,F9运行直接断在函数的入口!!! .......
直接下test的代码段的内存访问断点,用OD怎么操作?
|
能力值:
( LV2,RANK:10 )
|
-
-
59 楼
高!!不过对于MFC7的东西好像不行
|
能力值:
( LV5,RANK:60 )
|
-
-
60 楼
下载了, 试试看.
|
能力值:
( LV2,RANK:10 )
|
-
-
61 楼
有没有人有兴趣做Delphi或者BCB编译的程序下类似的工具啊
|
能力值:
( LV2,RANK:10 )
|
-
-
62 楼
好像在我win2ksp4上没有反应,不知道怎么了
|
能力值:
(RANK:1010 )
|
-
-
63 楼
看了前面这么多朋友的评论,下过来试试
|
能力值:
( LV2,RANK:10 )
|
-
-
64 楼
最初由 hj001 发布 好像在我win2ksp4上没有反应,不知道怎么了
楼上的,你的系统可能有问题了,我的Win2k+sp4用的很好,没出现什么问题
楼主的这个工具真方便,省了很多事!
希望能兼容更多的程序
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
对,就是7.1的还不行。呵呵,有的时候会让程序退出。但是确实一个非常不错的东西。呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
66 楼
支持斑竹!谢谢开源!支持开源
|
能力值:
( LV2,RANK:10 )
|
-
-
67 楼
真是精品!用起来很方便
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
不错,学习了
|
能力值:
( LV9,RANK:170 )
|
-
-
69 楼
|
能力值:
( LV15,RANK:1673 )
|
-
-
70 楼
下载试了一下,果然是好东东.
明天再慢慢研究...
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
好东西,谢谢分享!正在学习编程,很需要!
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
里面的好些看不懂. 版主干脆科普算了,加一点注释吧!! 谢谢!
好东西!! 顶穿!!
|
能力值:
( LV2,RANK:10 )
|
-
-
73 楼
好东西 收一个
|
能力值:
( LV6,RANK:90 )
|
-
-
74 楼
很好用 收了
|
能力值:
( LV2,RANK:10 )
|
-
-
75 楼
这么好的东西,先下来试试,谢谢提供!
|
|
|