能力值:
(RANK:1130 )
|
-
-
2 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
请问你是怎么弄的?
发一篇小小的心得,这样对大家都会有所提高!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
支持,这两天搞个软件的菜单搞不了,商业软件不好意思贴这儿
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
我也试着破了一下,可是老不行,把PUSH ECX改成PUSH 0会出现错误,请问二楼的兄弟怎么破的呀,我用CodeFusion分析一下,发现改了三处,可也不知道为什么这样改。
|
能力值:
(RANK:1130 )
|
-
-
6 楼
0041BCB8 |. FF50 0C call dword ptr ds:[eax+C]
这个是关键call,只要使它返回值eax为1就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
0042B4EE 7405 je 0042B4F5 ..........jne
0042B52D 75C1 jne 0042B4F0 .......je
改这两处 ok
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
海风月影,能否说一下破解的思路,这一点是最重要的!
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
对呀,你是怎么找到这个Call的,详细的写一下呀。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
绝对偏移 破解文件 原来文件
2B4EE: 90 74
2B4EF: 90 05
2BCC8: 01 00
2BCDC: 90 6A
2BCDD: 90 01
2BCDE: 90 58
2BCDF: 90 EB
2BCE0: 90 02
2BCE1: 90 33
2BCE2: 6A C0
2BCE3: 01 50
大家看看,为什么要这么修改那?
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
晕呀,二楼的,你快出来,详细地说一下
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
楼主,这个是你自己编写的,你不会不知道怎么破掉吧。汗
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
楼上的,VC和汇编是不一地
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
那你把源程序贴出来,让我也看看。
|
能力值:
(RANK:1130 )
|
-
-
15 楼
晕哦。。。。。。。。。。
用od载入,找到EnableMenuItem这个函数(只有一个,很好找)
0041BAE1 8B4C24 08 mov ecx,dword ptr ss:[esp+8]
0041BAE5 . F7D9 neg ecx
0041BAE7 . 1BC9 sbb ecx,ecx
0041BAE9 . 83E1 FD and ecx,FFFFFFFD
0041BAEC . 83C1 03 add ecx,3
0041BAEF . 80CD 04 or ch,4
0041BAF2 . 51 push ecx ; /Flags
0041BAF3 . FF76 08 push dword ptr ds:[esi+8] ; |ItemID
0041BAF6 . FF70 04 push dword ptr ds:[eax+4] ; |hMenu
0041BAF9 . FF15 28654300 call dword ptr ds:[<&USER32.EnableMenuItem>] ; \EnableMenuItem
看第一行,ecx为0则菜单为灰,为1则菜单不是灰的,因此改为
0041BAE1 33C9 xor ecx,ecx
0041BAE3 41 inc ecx
0041BAE4 90 nop
搞定,我上面的文件改繁了
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
楼上的兄弟,照你这样改不行呀。改了以后,点击Count,没办法实现程序的功能。工具栏上的那个向上的箭头仍然是灰色的。
|
能力值:
( LV4,RANK:50 )
|
-
-
17 楼
本想找一下“古董级”的CreakMe来学习,以提高自己,没想到个个都是硬核桃!——当然只是对我来说!
可弄了几天,还是搞不定!
-----------------------------------------------------------------
我是试着从以下方面来进行的
1、UPDATE_COMMAND_UI
但是Windows系统没有提供这个类型的消息,因为这只是MFC自已新定义的。
2、根据MFC程序的组成与其运行要求,得知:
如果,
菜单或工具栏中某按钮的ID没有与“消息处理函数”绑定,
MFC会自动将“菜单项”或“工具栏按钮”置为不可用!
可在逆向的环境下,
又如何将ID与代码绑定呢?
3、可能在工具栏创建时,设定了某些标志,但又好像不可能!
-------------------------------------------------------------
0041CB51 |. FF75 D0 push [local.12] ; /lParam 0041CB54 |. FF75 D4 push [local.11] ; |hInst 0041CB57 |. FF75 D8 push [local.10] ; |hMenu 0041CB5A |. FF75 DC push [local.9] ; |hParent 0041CB5D |. FF75 E0 push [local.8] ; |Height 0041CB60 |. FF75 E4 push [local.7] ; |Width 0041CB63 |. FF75 E8 push [local.6] ; |Y 0041CB66 |. FF75 EC push [local.5] ; |X 0041CB69 |. FF75 F0 push [local.4] ; |Style 0041CB6C |. FF75 F4 push [local.3] ; |WindowName 0041CB6F |. FF75 F8 push [local.2] ; |Class 0041CB72 |. FF75 FC push [local.1] ; |ExtStyle 0041CB75 |. FF15 38654>call dword ptr ds:[<&USER32.CreateWind>; \CreateWindowExA
---------------- 0012F2F4 00000000 |ExtStyle = 0 0012F2F8 004385E8 |Class = "ToolbarWindow32" 0012F2FC 00000000 |WindowName = NULL 0012F300 5400004E |Style = WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|4E 0012F304 00000000 |X = 0 0012F308 00000000 |Y = 0 0012F30C 00000000 |Width = 0 0012F310 00000000 |Height = 0 0012F314 0003080C |hParent = 0003080C ('exap',class='Afx:400000:b:10011:6:72c04b1') 0012F318 0000E800 |hMenu = 0000E800 0012F31C 00400000 |hInst = 00400000 0012F320 00000000 \lParam = NULL
可有知情人,来指点一下迷津!
先谢谢了!
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
哈哈,目前,实现了工具栏的“去灰”功能!
2楼附件中,好像是“关于”,“打开”两个菜单项(工具栏按钮)的功能失效了!
004264A9 . 25 FFFFFBFF and eax, FFFBFFFF 004264AE . 837C24 0C 00 cmp dword ptr ss:[esp+C], 0 ; par.1 004264B3 75 0A jnz short 004264BF ; 工具栏的关键处 004264B5 . 25 FFFFFDFF and eax, FFFDFFFF 004264BA . 0D 00000400 or eax, 40000
对于,菜单的“去灰”还没搞定!
努力中……
------------------------------------------------------
菜单“去灰”实现了,可是菜单点击后没反应,好像程序不响应!
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
工具栏:
004264C2 FF76 08 push dword ptr ds:[esi+8] 改为 push dword ptr ds:[esi+18]
004264C2 FF76 18
菜单:
0041BAF3 FF76 08 push dword ptr ds:[esi+8]改为 push dword ptr ds:[esi+20]
|
能力值:
( LV4,RANK:50 )
|
-
-
20 楼
[QUOTE=chadd;730915]工具栏:
004264C2 FF76 08 push dword ptr ds:[esi+8] 改为 push dword ptr ds:[esi+18]
004264C2 FF76 18
菜单:
0041BAF3 FF...[/QUOTE]
你好,
还是不行,
菜单是“去灰”但是单击没反应:
还只是表面上的“去灰”!
|
能力值:
( LV4,RANK:50 )
|
-
-
21 楼
Yeah!解决了
00401B84 push 0 // 改为“push 1”这里,是从“EnableMenuItem()"反推找到的。
---------------------------------
同时也解决了“ 2楼附件中,好像是[关于],[打开]两个菜单项(工具栏按钮)的功能失效”问题!
|
能力值:
( LV8,RANK:130 )
|
-
-
22 楼
通过分析程序映射表,可以看到菜单的响应函数地址为401B80
00401B80 MOV ECX, DWORD PTR SS:[ESP+4] 00401B84 PUSH 0 00401B86 MOV EAX, DWORD PTR DS:[ECX] 00401B88 CALL DWORD PTR DS:[EAX] 00401B8A RETN 4
但我一直以为是用了一个 if语句(jnz/jz)来判断显示菜单的Enable状态,没有想到是
push 1
为什么呢,按道理不可能是在程序中写死的,应该有一个判断的地方才对。
疑惑啊?是作者这样实现,还是程序真正的判断在其它位置,有可能?
而且在mfc中程序同一菜单ID的UPDATE_COMMAND_UI与ON_COMMAND在程序实现时竟然是同一个响应函数,没有想到。
(29楼说的没错,应该不是一个响应函数)
留个足迹,以待思考!
|
能力值:
( LV4,RANK:50 )
|
-
-
23 楼
[QUOTE=红尘岁月;739069]通过分析程序映射表,可以看到菜单的响应函数地址为401B80
36973
00401B80 MOV ECX, DWORD PTR SS:[ESP+4]
00401B84 PUSH 0
00401B86 MOV EAX, DWORD PTR DS:[ECX]
00401B88...[/QUOTE]
有这么好工具!
我正在为“只有工具没有对应的菜单”的逆向发愁
可是,
我在老版本的SoftSnoop 0.3里
找不到你截图里的功能。
“菜单响应函数”是不是你在“修改版”里自己添加进去的!
如果是
可否提供一份"SoftSnoop2010 v0.4"给我
先谢谢你了!
|
能力值:
( LV8,RANK:130 )
|
-
-
24 楼
可以,邮箱多少?
|
能力值:
( LV7,RANK:100 )
|
-
-
25 楼
晕S,刚刚才下载了你的0.3,现又看到你自己用的0.4。升级这么快!也给我一份吧。
lucky_789@163.com
谢谢了!
|
|
|