首页
社区
课程
招聘
一个Crackme的程序
发表于: 2004-7-30 14:51 16713

一个Crackme的程序

2004-7-30 14:51
16713

没有事情,写了一个Crackme
比较简单,谁来破一下?
要求是取消软件的toolbar上按扭的禁止项!         点击下载:附件!tbar.rar


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (38)
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
2
点击下载:附件!tbar-Cracked.rar

搞定了,不知对不对
2004-7-30 15:40
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请问你是怎么弄的?
发一篇小小的心得,这样对大家都会有所提高!
2004-7-30 16:38
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持,这两天搞个软件的菜单搞不了,商业软件不好意思贴这儿
2004-7-30 16:43
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
我也试着破了一下,可是老不行,把PUSH ECX改成PUSH 0会出现错误,请问二楼的兄弟怎么破的呀,我用CodeFusion分析一下,发现改了三处,可也不知道为什么这样改。
2004-7-30 17:01
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
6
0041BCB8   |.  FF50 0C                call dword ptr ds:[eax+C]

这个是关键call,只要使它返回值eax为1就行了
2004-7-30 17:38
0
雪    币: 5893
活跃值: (2712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
0042B4EE 7405                    je 0042B4F5 ..........jne
0042B52D 75C1                    jne 0042B4F0 .......je
改这两处 ok
2004-7-30 17:44
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
海风月影,能否说一下破解的思路,这一点是最重要的!
2004-7-30 18:34
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
对呀,你是怎么找到这个Call的,详细的写一下呀。
2004-7-30 19:01
0
雪    币: 1540
活跃值: (2807)
能力值: ( 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

大家看看,为什么要这么修改那?
2004-7-30 21:07
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
晕呀,二楼的,你快出来,详细地说一下
2004-7-31 09:25
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
楼主,这个是你自己编写的,你不会不知道怎么破掉吧。汗
2004-7-31 14:39
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼上的,VC和汇编是不一地
2004-7-31 16:32
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
那你把源程序贴出来,让我也看看。
2004-7-31 16:44
0
雪    币: 7309
活跃值: (3788)
能力值: (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

搞定,我上面的文件改繁了
2004-7-31 19:03
0
雪    币: 217
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
楼上的兄弟,照你这样改不行呀。改了以后,点击Count,没办法实现程序的功能。工具栏上的那个向上的箭头仍然是灰色的。
2004-7-31 19:32
0
雪    币: 398
活跃值: (59)
能力值: ( 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


可有知情人,来指点一下迷津!
先谢谢了!
2009-12-21 16:58
0
雪    币: 398
活跃值: (59)
能力值: ( 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

对于,菜单的“去灰”还没搞定!
努力中……
------------------------------------------------------
菜单“去灰”实现了,可是菜单点击后没反应,好像程序不响应!
上传的附件:
2009-12-21 19:58
0
雪    币: 277
活跃值: (10)
能力值: ( 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]
2009-12-21 23:32
0
雪    币: 398
活跃值: (59)
能力值: ( 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]

你好,
还是不行,
菜单是“去灰”但是单击没反应:
还只是表面上的“去灰”!
2009-12-22 12:05
0
雪    币: 398
活跃值: (59)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
Yeah!解决了
00401B84  push 0   //  改为“push 1”这里,是从“EnableMenuItem()"反推找到的。
---------------------------------
同时也解决了“2楼附件中,好像是[关于],[打开]两个菜单项(工具栏按钮)的功能失效”问题!
上传的附件:
2009-12-23 11:06
0
雪    币: 517
活跃值: (64)
能力值: ( 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楼说的没错,应该不是一个响应函数)

留个足迹,以待思考!
上传的附件:
2010-1-4 11:56
0
雪    币: 398
活跃值: (59)
能力值: ( 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"给我
先谢谢你了!
2010-1-5 22:40
0
雪    币: 517
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
24
可以,邮箱多少?
2010-1-6 00:18
0
雪    币: 257
活跃值: (28)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
25
晕S,刚刚才下载了你的0.3,现又看到你自己用的0.4。升级这么快!也给我一份吧。

lucky_789@163.com

谢谢了!
2010-1-6 01:01
0
游客
登录 | 注册 方可回帖
返回
//