首页
社区
课程
招聘
标志位法爆破实例
发表于: 2006-7-24 08:56 10031

标志位法爆破实例

2006-7-24 08:56
10031

【破文标题】标志位的修改实例
【破文作者】逍遥风
【破解工具】OD
【破解平台】WIN XP
------------------------------------------------------------
修改标志位不是什么新技术。只是发现用的人不多所以简单举例一下,浅显的文章没什么技术含量。只适合和我一样的菜鸟学习.

话不多说,开工
根据错误提示很容易来到关键代码处:
00401223   .  68 FF000000   push    0FF                              ; /Count = FF (255.)
00401228   .  68 30694000   push    00406930                         ; |Buffer = vcrkme01.00406930
0040122D   .  68 E8030000   push    3E8                              ; |ControlID = 3E8 (1000.)
00401232   .  50            push    eax                              ; |hWnd => 0017068C ('[v0!d] Crackme - v0.01',class='#32770')
00401233   .  FFD6          call    esi                              ; \GetDlgItemTextA
00401235   .  8B0D 28694000 mov     ecx, [406928]                    ;  取注册名位数
0040123B   .  68 FF000000   push    0FF                              ; /Count = FF (255.)
00401240   .  68 306A4000   push    00406A30                         ; |Buffer = vcrkme01.00406A30
00401245   .  68 EA030000   push    3EA                              ; |ControlID = 3EA (1002.)
0040124A   .  51            push    ecx                              ; |hWnd => 0017068C ('[v0!d] Crackme - v0.01',class='#32770')
0040124B   .  FFD6          call    esi                              ; \GetDlgItemTextA
0040124D   .  68 306A4000   push    00406A30                         ;  取输入的注册码的位数
00401252   .  68 30694000   push    00406930                         ;  ASCII "lovetc"
00401257   .  E8 A4FDFFFF   call    00401000                         ;  算法CALL。就在它身上做文章
0040125C   .  83C4 08       add     esp, 8
0040125F   .  83F8 01       cmp     eax, 1                           ;  EAX中的值与1比较
00401262   .  A3 646C4000   mov     [406C64], eax
00401267   .  75 65         jnz     short 004012CE                   ;  EAX不等于1就注册失败

其中:
0040125F   .  83F8 01       cmp     eax, 1                           ;  EAX中的值与1比较
与1进行比较就是检验标志位的内容是否为1
00401267   .  75 65         jnz     short 004012CE                   ;  EAX不等于1就注册失败
如果标志位的值不为1就跳向失败。

所以:现在的任务就是让标志位恒为1。

那就在算法CALL上来做做手脚。
跟进算法CALL:
----------------------------------------------------------------------
来到这里
00401000  /$  53            push    ebx
00401001  |.  8B5C24 0C     mov     ebx, [esp+C]
00401005  |.  55            push    ebp
00401006  |.  56            push    esi
由于是爆破所以就没必要仔细跟算法了。在算法开始的地方(就是这里)来准备做手术。
注意开头的两段代码:
00401000  /$  53            push    ebx
00401001  |.  8B5C24 0C     mov     ebx, [esp+C]
把它改成这样:
00401000  /$  53           mov     al, 1
00401001  |.  8B5C24 0C    ret
保存修改。
运行修改过的程序,任意输入注册信息
呵呵~~!成功

注意:修改的方法有很多,不仅限于mov     al, 1

----------------------------------------------------------------------
与修改关键跳的爆破方法相比,修改标志位法更彻底更有效
但是具也有一定局限性。
总的来说还是一种很不错的方法,掌握起来也很简单

----------------------------------------------------------------------
【版权声明】本文只为流,转载请保留作者及文章完整性


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
2
沙发,越来越过瘾,期待更多的实用性技巧~~

学习~~
2006-7-24 11:13
0
雪    币: 8859
活跃值: (3098)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在看学学到很多使用的东西
2006-7-25 22:08
0
雪    币: 219
活跃值: (56)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
学习~~~~~~
2006-7-26 14:46
0
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
呵呵,这篇看的过瘾,有学了一中方法,多谢斑竹拉~~
2006-7-26 17:14
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
标志位破解.学习了!!
2006-7-26 22:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习学习,多谢斑竹
2006-7-29 20:31
0
雪    币: 200
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嘻嘻~~~学习一下~~
2006-7-30 04:26
0
雪    币: 249
活跃值: (10)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
9
本菜鸟以前也用这种方法爆破过一些程序

属于常规方法
2006-7-30 15:45
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
10
毕竟还有些人不知道,所以加个精吧,出CrackMe8精华的时候可以让更多的人了解这种Revise技术。
2006-8-3 17:13
0
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
呵呵 谢谢楼主..学习了!!

但我觉得没什么用啊..

把75改为74还简单点!
2006-8-4 17:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错不错,学习了,是一种思路
2006-8-4 19:56
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
又学一招,谢谢
2006-8-4 22:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错不错,又学一招,谢谢
2006-8-5 13:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
好东东 支持你
学习中
2006-8-5 15:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
用户名:-cdgcdg
注册号:--G25325-50001
在追号时前面还可以,在用户名字串求和以后就晕了,真是菜!
找给EAX赋值为1的地方没找到.
2006-8-27 12:09
0
游客
登录 | 注册 方可回帖
返回
//