首页
社区
课程
招聘
[原创]软柿子呢,都来涅啊!
2007-5-23 23:35 5641

[原创]软柿子呢,都来涅啊!

2007-5-23 23:35
5641
【文章标题】: 软柿子呢,都来涅啊!
【文章作者】: llydd
【作者邮箱】: llydd@163.com
【软件名称】: keyme.exe
【下载地址】: http://www.crackmes.de/users/b0ne/keyme1/
【使用工具】: OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  今晚郁闷的很,自考计算机系统结构挂了,郁闷,找个软柿子来发泄
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  这是个控制台程序,运行后随便输入个数字提示wrong serial
  搜索字符串wrong serial
  00401603   .  68 29134000   push    00401329                         ; |\twrong serial\n
  
  往上翻看到
  004015E1   .  68 00134000   push    00401300                         ; |well done, your key works. congrats lad\n
  004015E6   .  68 50634300   push    00436350                         ; |Arg1 = 00436350
  004015EB   .  E8 5C210200   call    0042374C                         ; \keyme.0042374C
  004015F0   .  83C4 10       add     esp, 10
  004015F3   .  C745 E4 01000>mov     dword ptr [ebp-1C], 1
  004015FA   >  837D E4 00    cmp     dword ptr [ebp-1C], 0
  004015FE   .  75 15         jnz     short 00401615
  
  只要停在004015E1处便是注册成功
  再往上翻
  0040137A   $  55            push    ebp
  在此设置断点,一路F8,最后停下来提示要求输入,那我就输入78787878
  00401403   .  83F8 10       cmp     eax, 10                ;判断字符串长度是否16位,不是则跳走
  00401406   .  0F85 EE010000 jnz     004015FA
  那么我重新CTRL+F2,有上次的经验后F2在
  004013FB   .  E8 407B0000   call    00408F40                         ; \keyme.00408F40
  
  F9运行
  输入16位注册码7878787878787878
  后面将是一路的对注册码进行判断的代码
  0040140F  push    0                                ; |Arg2 = 00000000
  00401411  lea     eax, dword ptr [ebp-18]          ; |
  00401414  push    eax                              ; |Arg1
  00401415  call    004178AC                         ; \keyme.004178AC
  0040141A  add     esp, 10
  0040141D  cmp     byte ptr [eax], 40               ;  第0个字符为大写字母
  00401420  jle     004015FA
  00401426  sub     esp, 8
  00401429  push    0                                ; |Arg2 = 00000000
  0040142B  lea     eax, dword ptr [ebp-18]          ; |
  0040142E  push    eax                              ; |Arg1
  0040142F  call    004178AC                         ; \keyme.004178AC
  00401434  add     esp, 10
  00401437  cmp     byte ptr [eax], 5A               ;  不超过'Z'
  0040143A  jg      004015FA
  00401440  sub     esp, 8
  00401443  push    0B                               ; |Arg2 = 0000000B
  00401445  lea     eax, dword ptr [ebp-18]          ; |
  00401448  push    eax                              ; |Arg1
  00401449  call    004178AC                         ; \keyme.004178AC
  0040144E  add     esp, 10
  00401451  cmp     byte ptr [eax], 20               ;  第11个字母为空格
  00401454  jnz     004015FA
  0040145A  sub     esp, 8
  0040145D  push    8                                ; |Arg2 = 00000008
  0040145F  lea     eax, dword ptr [ebp-18]          ; |
  00401462  push    eax                              ; |Arg1
  00401463  call    004178AC                         ; \keyme.004178AC
  00401468  add     esp, 10
  0040146B  cmp     byte ptr [eax], 2E               ;  第8个字母为'.'
  0040146E  jnz     004015FA
  00401474  mov     dword ptr [ebp-24], 0
  0040147B  mov     dword ptr [ebp-30], 0
  00401482  cmp     dword ptr [ebp-30], 0A           ;  计数器10
  00401486  jle     short 0040148A
  00401488  jmp     short 004014AB
  0040148A  sub     esp, 8
  0040148D  push    dword ptr [ebp-30]               ; |Arg2
  00401490  lea     eax, dword ptr [ebp-18]          ; |
  00401493  push    eax                              ; |Arg1
  00401494  call    004178AC                         ; \keyme.004178AC
  00401499  add     esp, 10
  0040149C  movsx   edx, byte ptr [eax]
  0040149F  lea     eax, dword ptr [ebp-24]
  004014A2  add     dword ptr [eax], edx             ;  从0-A开始,各位ASSCII码累加,结果存于EBP-24处
  004014A4  lea     eax, dword ptr [ebp-30]
  004014A7  inc     dword ptr [eax]
  004014A9  jmp     short 00401482
  004014AB  mov     dword ptr [ebp-28], 0
  004014B2  mov     dword ptr [ebp-30], 0C
  004014B9  cmp     dword ptr [ebp-30], 0F
  004014BD  jle     short 004014C1
  004014BF  jmp     short 004014E2
  004014C1  sub     esp, 8
  004014C4  push    dword ptr [ebp-30]               ; |Arg2
  004014C7  lea     eax, dword ptr [ebp-18]          ; |
  004014CA  push    eax                              ; |Arg1
  004014CB  call    004178AC                         ; \keyme.004178AC
  004014D0  add     esp, 10
  004014D3  movsx   edx, byte ptr [eax]              ;  然后从第C个字母处开始累加到第F个字母存于EBP-28
  004014D6  lea     eax, dword ptr [ebp-28]
  004014D9  add     dword ptr [eax], edx
  004014DB  lea     eax, dword ptr [ebp-30]
  004014DE  inc     dword ptr [eax]
  004014E0  jmp     short 004014B9
  004014E2  cmp     dword ptr [ebp-28], 1D1          ;  判断第二次累加是否为1D1
  004014E9  jnz     004015FA
  004014EF  cmp     dword ptr [ebp-24], 3F3          ;  判断第一次累加是否为3F3
  004014F6  jnz     004015FA
  004014FC  mov     edx, dword ptr [ebp-28]
  004014FF  mov     eax, dword ptr [ebp-24]
  00401502  sub     eax, edx                         ;  第一次累加减第二次累加也就是3F3-1D1
  00401504  mov     dword ptr [ebp-2C], eax          ;  结果存于EBP-2C
  00401507  mov     dword ptr [ebp-24], 72           ;  EBP-24置72
  0040150E  sub     esp, 8
  00401511  push    0F                               ; |Arg2 = 0000000F
  00401513  lea     eax, dword ptr [ebp-18]          ; |
  00401516  push    eax                              ; |Arg1
  00401517  call    004178AC                         ; \keyme.004178AC
  0040151C  add     esp, 10
  0040151F  mov     dword ptr [ebp-38], eax          ;  取最后一位的地址
  00401522  sub     esp, 8
  00401525  push    0E                               ; |Arg2 = 0000000E
  00401527  lea     eax, dword ptr [ebp-18]          ; |
  0040152A  push    eax                              ; |Arg1
  0040152B  call    004178AC                         ; \keyme.004178AC
  00401530  add     esp, 10
  00401533  mov     edx, eax                         ;  倒数第二位地址
  00401535  mov     ecx, dword ptr [ebp-38]
  00401538  mov     al, byte ptr [ecx]
  0040153A  cmp     al, byte ptr [edx]               ;  判断最后一位与倒数第二位是否相等
  0040153C  jnz     004015FA
  00401542  sub     esp, 8
  00401545  push    0D                               ; |Arg2 = 0000000D
  00401547  lea     eax, dword ptr [ebp-18]          ; |
  0040154A  push    eax                              ; |Arg1
  0040154B  call    004178AC                         ; \keyme.004178AC
  00401550  add     esp, 10
  00401553  cmp     byte ptr [eax], 6F               ;  判断倒数每三位是否为6F也就是'o'
  00401556  jnz     004015FA
  0040155C  sub     esp, 8
  0040155F  push    0C                               ; |Arg2 = 0000000C
  00401561  lea     eax, dword ptr [ebp-18]          ; |
  00401564  push    eax                              ; |Arg1
  00401565  call    004178AC                         ; \keyme.004178AC
  0040156A  add     esp, 10
  0040156D  movsx   eax, byte ptr [eax]
  00401570  cmp     eax, dword ptr [ebp-24]          ;  判断倒数第四位是否为r
  00401573  jnz     004015FA
  00401579  cmp     dword ptr [ebp-2C], 222          ;  判断第一次与第二次累加结果是否为222
  00401580  jnz     short 004015FA
  00401582  sub     esp, 8
  00401585  push    2                                ; |Arg2 = 00000002
  00401587  lea     eax, dword ptr [ebp-18]          ; |
  0040158A  push    eax                              ; |Arg1
  0040158B  call    004178AC                         ; \keyme.004178AC
  00401590  add     esp, 10
  00401593  cmp     byte ptr [eax], 39               ;  判断第三位是否为数字
  00401596  jg      short 004015FA
  00401598  sub     esp, 8
  0040159B  push    2                                ; |Arg2 = 00000002
  0040159D  lea     eax, dword ptr [ebp-18]          ; |
  004015A0  push    eax                              ; |Arg1
  004015A1  call    004178AC                         ; \keyme.004178AC
  004015A6  add     esp, 10
  004015A9  cmp     byte ptr [eax], 2F               ;  
  004015AC  jle     short 004015FA
  004015AE  sub     esp, 8
  004015B1  push    1                                ; |Arg2 = 00000001
  004015B3  lea     eax, dword ptr [ebp-18]          ; |
  004015B6  push    eax                              ; |Arg1
  004015B7  call    004178AC                         ; \keyme.004178AC
  004015BC  add     esp, 10
  004015BF  mov     dword ptr [ebp-3C], eax          ;  第二位数地址送EBP-3C
  004015C2  sub     esp, 8
  004015C5  push    0C                               ; |Arg2 = 0000000C
  004015C7  lea     eax, dword ptr [ebp-18]          ; |
  004015CA  push    eax                              ; |Arg1
  004015CB  call    004178AC                         ; \keyme.004178AC
  004015D0  add     esp, 10
  004015D3  mov     edx, eax
  004015D5  mov     ecx, dword ptr [ebp-3C]
  004015D8  mov     al, byte ptr [ecx]
  004015DA  cmp     al, byte ptr [edx]               ;  判断倒数第四位是否等于等于第二位
  004015DC  jnz     short 004015FA
  004015DE  sub     esp, 8
  004015E1  push    00401300                         ; |well done, your key works. congrats lad\n
  004015E6  push    00436350                         ; |Arg1 = 00436350
  004015EB  call    0042374C                         ; \keyme.0042374C
  
  如判断到了004015DC那么便注册成功
  
  总结一下
  
     r                     .      r o x x
  
   0 1 2 3 4 5 6 7 8 9 A B C D E F
  
  
  0+......+A=3F3H
  C+....+F=1D1H
  8='.'
  1=大写字母
  B=' '
  1=C='r'
  D='o'
  E=F='x'
  '0'<=2<='9'
  也就是第2,3,4,5,6,7,9,A为变数,满足0+......+A=3F3H便可
  
  “Ar9zaaaa.az roxx”便是一组注册码
  
  注册机就不想搞了,哪位兄弟有时间就可以帮忙写一下^_^
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年05月23日 下午 11:32:20

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (5)
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
zcg 2007-5-23 23:45
2
0
老大,N年前就有的了!

http://bbs.pediy.com/showthread.php?t=44255
雪    币: 380
活跃值: (101)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
llydd 9 2007-5-23 23:48
3
0
顶你个肺哦,权当自误自乐吧,等着版主来锁帖
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
冷血书生 28 2007-5-24 13:09
4
0
关键是过程,而不是谁谁谁发了~~~
学习一下~~~
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
龙龙love 2007-5-29 16:29
5
0
说得好啊,
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mnop 2007-6-1 14:36
6
0
不管谁发的,学习了,谢谢
游客
登录 | 注册 方可回帖
返回