首页
社区
课程
招聘
[旧帖] [原创]日期限制的简单暴破 0.00雪花
发表于: 2007-5-18 09:35 7482

[旧帖] [原创]日期限制的简单暴破 0.00雪花

2007-5-18 09:35
7482
【文章标题】: 日期限制的简单暴破
【文章作者】: 范晨鹏
【作者邮箱】: [email]p_168@163.com[/email]
【作者主页】: 09bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3c8A6P5h3I4S2j5W2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3@1`.
【作者QQ号】: 109427716
【软件名称】: mstMD5汉化版
【软件大小】: 很小
【下载地址】: afdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3I4X3i4K6u0W2L8$3&6D9K9h3&6W2k6r3!0%4L8W2)9J5k6h3&6W2N6q4)9J5c8Y4y4G2k6Y4c8Q4x3V1j5@1x3K6p5J5x3g2)9J5k6h3S2@1L8b7`.`.
【加壳方式】: 没加
【保护方式】: 什么是保护方式?
【编写语言】: vc7
【使用工具】: OllyICE
【操作平台】: windows
【软件介绍】: 一个查看MD5值的小东东
【作者声明】: 菜鸟也不易!
--------------------------------------------------------------------------------
【详细过程】
  
  载入程序。
  按“ctrl+F8”,程序跑起来了,屏幕哗哗地翻动。一会儿,不动了。蓝色的光标停在了下面一行。
  
  00402FD4   .  E8 FD600100   call    004190D6
  
  程序弹出了“本程序已经过期”的提示。
  
  简单的暴破,就是修改跳转。程序的正常执行流程是:检查注册码,正确,则程序正常执行;错误,则执行错误提示。
  我们要做的,就是把它改成:检查注册码,正确,则程序正常执行;错误,则程序正常执行。
  往上几行,寻找跳转。离0x00402FD4这一行最近的一个跳转是:
  
  00402FAD   . /76 46         jbe     short 00402FF5
  
  jbe的意思是“若小于则跳转”。写程序的人的话来说,就是:如果还没有到期,就跳到正常执行的流程上;否则,就一条道走到黑。(提示过期并退出)。
  还记得爆破无敌口诀吧?“一条(跳)就胡,一饼(EB)伺候”--如果这里一跳就能胜利,那就把这里改成EB(绝对跳转jmp)。
  好。我们改一下下。在jbe这里双击,弹出“汇编于此处”的窗口。把jbe改成jmp。后面的数字不动。点“汇编”。这就改好了。关闭“汇编于此处”窗口。这时00402FAD这一行变成了红色
  
  00402FAD     /EB 46         jmp     short 00402FF5
  
  然后把文件保存了即可:右键,“复制到可执行文件”-->“选择”,弹出“文件”窗口,不用仔细看,直接点"×"关闭窗口,OllyICE会提示你保存文件。点“是”。  
  好了,看程序是不是不可以正常执行了?
  收工!
  
  
--------------------------------------------------------------------------------
  有问题?
  1、Ctrl+F8是什么意思?
  自动步过。
  2、什么是“步入”、“步过”、“执行到返回”?
  OllyICE是我们的“眼线”,它监视程序的一举一动并按要求向我们汇报。“步入”就是程序走每一步都要报告。“步过”就是擤鼻涕擦脸这些事就不汇报了。“执行到返回”,就是它只汇报程序“刚刚完成一项工作”。
  
  程序的执行过程:
  
  main->code->call-┐             ┌-code->call-┐             ┌-code->exit
                      │             │               │             │
                      └code->ret->┘               └code->ret->┘
  
  “步入”监视的内容:
  
  同上。
  
  “步过”监视的内容:
  main->code---------------code-------------code->exit
                       
  “执行到返回”监视的内容:
  main--------┐             ┌--------┐             ┌---->exit
                      │             │               │             │
                      └--->ret->┘               └--->ret->┘
  
  上图中,main表示程序开始执行,code表示程序代码/指令,call表示函数调用,ret表示函数执行完毕。exit表示程序执行完毕。
  上面,每一个有文字的地方,OllyICE都会执行一次停顿,以使我们有机会查看程序在干什么。

3、解释一下下面这段代码:

00402F9F   .  FF75 E8       push    dword ptr [ebp-18]
00402FA2   .  E8 93380000   call    0040683A
00402FA7   .  3D D6193201   cmp     eax, 13219D6
00402FAC   .  59            pop     ecx
00402FAD   .  76 46         jbe     short 00402FF5 //这是我们修改跳转的那一行
00402FAF   .  E8 69470100   call    0041771D
00402FB4   .  8B10          mov     edx, dword ptr [eax]
00402FB6   .  8BC8          mov     ecx, eax
00402FB8   .  FF52 0C       call    dword ptr [edx+C]
00402FBB   .  83C0 10       add     eax, 10
00402FBE   .  8945 F0       mov     dword ptr [ebp-10], eax
00402FC1   .  6A 66         push    66
00402FC3   .  8D4D F0       lea     ecx, dword ptr [ebp-10]
00402FC6   .  C645 FC 03    mov     byte ptr [ebp-4], 3
00402FCA   .  E8 DCF6FFFF   call    004026AB
00402FCF   .  53            push    ebx
00402FD0   .  53            push    ebx
00402FD1   .  FF75 F0       push    dword ptr [ebp-10]
00402FD4   .  E8 FD600100   call    004190D6   //程序在这里弹出了“过期”的提示
……
00402FF5   > \51            push    ecx  //从这里以后,程序就正常执行了
00402FF6   .  8BCC          mov     ecx, esp
00402FF8   .  8965 EC       mov     dword ptr [ebp-14], esp
……

答:从00402F9F 到 00402FAD 是日期比较模块,00402FAF到00402FF4是提示过期的模块。00402FF5以后是程序主模块。所以,从00402F9F 到 00402FAD 是重点

00402F9F   .  FF75 E8       push    dword ptr [ebp-18]   //将内存ebp-18的地址压栈。ebp-18保存的是系统时间20070517
00402FA2   .  E8 93380000   call    0040683A //调用日期处理函数,这个函数把字符串20070517(系统时间)变为int类型,并保存到寄存器eax里
00402FA7   .  3D D6193201   cmp     eax, 13219D6 //将eax和 20060630比较大小。13219D6是 20060630的十六进制形式。
00402FAC   .  59            pop     ecx   // 比较完了,将[ebp-18]出栈
00402FAD   .  76 46         jbe     short 00402FF5 //若小于,则跳转到正常执行的模块
00402FAF   .  E8 69470100   call    0041771D //沦落到这一步,则只能一条道走到黑。

  
  
  

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的[Bgcolor=red]完整[/Bgcolor], 谢谢!

                                                       2007年05月18日 9:32:05

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 93
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
强烈支持  适合我学习哈  希望大大多发些这类文章哈
2007-5-18 10:41
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
沙发被抢```

注释换个颜色吧``偶眼睛受不了`
2007-5-18 11:17
0
雪    币: 666
活跃值: (201)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
4
呵呵换啦,亮绿色换成了墨绿色
2007-5-18 13:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习学习,
多谢提供!
2007-5-18 13:46
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
嗯。我想你说的很详细。不过对我还是有点迷路
2007-5-18 14:43
0
雪    币: 367
活跃值: (1830)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
鼓励,,,文章写的不错
2007-5-18 15:48
0
雪    币: 477
活跃值: (549)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好文!鼓励,,,文章写的不错!学习中
2007-5-18 20:12
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
什么程序是不是没有壳,有壳不行吧
2007-5-19 08:41
0
雪    币: 141
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
日期爆破很简单的,上次我搞一个理财软件,一直搞不懂,后来WINHEX发现"20xx-xx-xx"的字样
改成"9999-99-99"就KO了!
2007-5-19 11:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
写的真的很详细呀,适合向我这种初学者
2007-5-19 12:26
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
写的真好,适合我们小菜学习
2007-5-19 21:10
0
雪    币: 247
活跃值: (42)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
支持```哈哈 ``
2007-5-20 00:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
在一些软件里面经常见到一些比如[ebp-18],[ebp+8]之类的句子,这是怎么回事?
2007-5-20 10:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个比较能懂,实践一下
2007-5-20 12:21
0
雪    币: 666
活跃值: (201)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
16
ebp-18
是指ebp中保存的数值减去十六进制的18后,其数值所表示的内存地址.
2007-5-22 11:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢~~正在努力看明白~~
2007-5-22 15:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
顶一下
2007-5-22 20:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
[QUOTE=;]...[/QUOTE]
谢谢,我正在学习爆破
2007-5-22 20:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
非常通俗易懂,感谢楼主,暂一个。
2007-5-22 21:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习ING!!!
2007-5-22 23:00
0
雪    币: 215
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感謝~~~學習中
2007-5-22 23:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
弄懂了,谢谢
2007-5-23 00:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不能安装呀
2007-5-24 00:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
显示程序已过期是怎么回事呀
2007-5-24 00:23
0
游客
登录 | 注册 方可回帖
返回