首页
社区
课程
招聘
[原创]糊里糊涂2超级糊涂(太菜鸟级)
发表于: 2007-8-8 14:58 10229

[原创]糊里糊涂2超级糊涂(太菜鸟级)

2007-8-8 14:58
10229
【文章标题】: 糊里糊涂2超级糊涂(主要是写注册机)
【文章作者】: zhouxl
【作者邮箱】: 214201887@qq.com
【软件名称】: Andrénalin.2.exe
【软件大小】: 12.5 KB
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【作者声明】: 没什么技术含量,只是给自己一个鼓励~
--------------------------------------------------------------------------------
【详细过程】
  1.查壳(省了)
  2.运行程序 输入'zxc','123456'  提示"Leider Falsch!   Nochmal veruschen ! ..............."
  3.ollyice载入,右键->查找->所有参考文本字串->找到"Leider Falsch!   Nochmal veruschen ! ......."就在最下面
    双击来到:
  00402280   .  68 A0000000   push    0A0
  00402285   .  68 201C4000   push    00401C20
  0040228A   .  53            push    ebx
  0040228B   .  50            push    eax
  0040228C   .  FF15 14414000 call    dword ptr [<&MSVBVM50.__vbaHresu>;  MSVBVM50.__vbaHresultCheckObj
  00402292   >  8B45 A8       mov     eax, dword ptr [ebp-58]          ;
       4        ------->4.在这按F2下断点,我开始在上行的CALL上下段,什么都没拦下
               ------>点重新开始  运行 输入'zxc','123456'点'OK',发现
               ----->提示中有假注册码'123456'出现,无意的看了下堆栈  在假注册码上下看看
                ---->发现可疑:UNICODE "420-8765-490"  真注册码?  快试试~~~!!!
                ---->哈哈,破解了!!!!没找到算法(别失望),现在写注册机.
      0012F468   741234E2  返回到 MSVBVM50.741234E2 来自 MSVBVM50.741233C4
      0012F46C   0014DCF4  UNICODE "420-8765-490"
      0012F470   0012F3C8
      0012F474   00000000
      0012F478   0012F4E8
      0012F47C   706E8000
      0012F480   42588134
      0012F484   00CFBEAC
      0012F488   0014DD2C  UNICODE "123456"
      0012F48C   00000000
      0012F490   00000030
      0012F494   00000000
      0012F498   0067B940  UNICODE "&OK"
      0012F49C   00000008
      0012F4A0   0012F4E8
      0012F4A4   0014DB94  UNICODE "zxc"
      0012F4A8   00000000
      0012F4AC   00140008
      0012F4B0   0012F318
      0012F4B4   0014DCF4  UNICODE "420-8765-490"
      0012F4B8   7C98E723  返回到 ntdll.7C98E723 来自 ntdll.RtlLeaveCriticalSection
  
  
  
  
  00402295   .  8D4D CC       lea     ecx, dword ptr [ebp-34]          ;
  00402298   .  8945 9C       mov     dword ptr [ebp-64], eax          ;
  0040229B   .  8D45 94       lea     eax, dword ptr [ebp-6C]          ;
  0040229E   .  50            push    eax
  0040229F   .  51            push    ecx
  004022A0   .  C745 A8 00000>mov     dword ptr [ebp-58], 0
  004022A7   .  C745 94 08800>mov     dword ptr [ebp-6C], 8008
  004022AE   .  FF15 48414000 call    dword ptr [<&MSVBVM50.__vbaVarTs>;  MSVBVM50.__vbaVarTstEq
  004022B4   .  8D4D A4       lea     ecx, dword ptr [ebp-5C]
  004022B7   .  8BD8          mov     ebx, eax
  004022B9   .  FF15 B4414000 call    dword ptr [<&MSVBVM50.__vbaFreeO>;  MSVBVM50.__vbaFreeObj
  004022BF   .  8D4D 94       lea     ecx, dword ptr [ebp-6C]
  004022C2   .  FF15 00414000 call    dword ptr [<&MSVBVM50.__vbaFreeV>;  MSVBVM50.__vbaFreeVar
  004022C8   .  66:85DB       test    bx, bx
  004022CB   .  0F84 C0000000 je      00402391
      3                           -------->3.这跳的,在上面下段点找假注册码.
  004022D1   .  FF15 74414000 call    dword ptr [<&MSVBVM50.#534>]     ;  MSVBVM50.rtcBeep
  004022D7   .  8B1D 98414000 mov     ebx, dword ptr [<&MSVBVM50.__vba>;  MSVBVM50.__vbaVarDup
  004022DD   .  B9 04000280   mov     ecx, 80020004
  004022E2   .  898D 6CFFFFFF mov     dword ptr [ebp-94], ecx
  004022E8   .  B8 0A000000   mov     eax, 0A
  004022ED   .  898D 7CFFFFFF mov     dword ptr [ebp-84], ecx
  004022F3   .  8D95 44FFFFFF lea     edx, dword ptr [ebp-BC]
  004022F9   .  8D4D 84       lea     ecx, dword ptr [ebp-7C]
  004022FC   .  8985 64FFFFFF mov     dword ptr [ebp-9C], eax
  00402302   .  8985 74FFFFFF mov     dword ptr [ebp-8C], eax
  00402308   .  C785 4CFFFFFF>mov     dword ptr [ebp-B4], 00401CA8     ;  UNICODE "RiCHTiG !"
  00402312   .  C785 44FFFFFF>mov     dword ptr [ebp-BC], 8
  0040231C   .  FFD3          call    ebx                              ;  <&MSVBVM50.__vbaVarDup>
  0040231E   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
  00402324   .  8D4D 94       lea     ecx, dword ptr [ebp-6C]
  00402327   .  C785 5CFFFFFF>mov     dword ptr [ebp-A4], 00401C3C     ;  UNICODE "  RiCHTiG !!!!   ....  weiter mit dem N"
  00402331   .  C785 54FFFFFF>mov     dword ptr [ebp-AC], 8
  0040233B   .  FFD3          call    ebx
  0040233D   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
  00402343   .  8D85 74FFFFFF lea     eax, dword ptr [ebp-8C]
  00402349   .  52            push    edx
  0040234A   .  8D4D 84       lea     ecx, dword ptr [ebp-7C]
  0040234D   .  50            push    eax
  0040234E   .  51            push    ecx
  0040234F   .  8D55 94       lea     edx, dword ptr [ebp-6C]
  00402352   .  6A 30         push    30
  00402354   .  52            push    edx
  00402355   .  FF15 28414000 call    dword ptr [<&MSVBVM50.#595>]     ;  MSVBVM50.rtcMsgBox
  0040235B   .  8D95 14FFFFFF lea     edx, dword ptr [ebp-EC]
  00402361   .  8D4D AC       lea     ecx, dword ptr [ebp-54]
  00402364   .  8985 1CFFFFFF mov     dword ptr [ebp-E4], eax
  0040236A   .  C785 14FFFFFF>mov     dword ptr [ebp-EC], 3
  00402374   .  FFD6          call    esi
  00402376   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
  0040237C   .  8D8D 74FFFFFF lea     ecx, dword ptr [ebp-8C]
  00402382   .  50            push    eax
  00402383   .  8D55 84       lea     edx, dword ptr [ebp-7C]
  00402386   .  51            push    ecx
  00402387   .  8D45 94       lea     eax, dword ptr [ebp-6C]
  0040238A   .  52            push    edx
  0040238B   .  50            push    eax
  0040238C   .  E9 B5000000   jmp     00402446
  00402391   >  8B1D 98414000 mov     ebx, dword ptr [<&MSVBVM50.__vba>;  MSVBVM50.__vbaVarDup
         2                           -------->2.点下,红线指示,由4022CB跳过来的
  00402397   .  B9 04000280   mov     ecx, 80020004
  0040239C   .  898D 6CFFFFFF mov     dword ptr [ebp-94], ecx
  004023A2   .  B8 0A000000   mov     eax, 0A
  004023A7   .  898D 7CFFFFFF mov     dword ptr [ebp-84], ecx
  004023AD   .  8D95 44FFFFFF lea     edx, dword ptr [ebp-BC]
  004023B3   .  8D4D 84       lea     ecx, dword ptr [ebp-7C]
  004023B6   .  8985 64FFFFFF mov     dword ptr [ebp-9C], eax
  004023BC   .  8985 74FFFFFF mov     dword ptr [ebp-8C], eax
  004023C2   .  C785 4CFFFFFF>mov     dword ptr [ebp-B4], 00401D9C     ;  UNICODE "LEiDER Falsch !  "
  004023CC   .  C785 44FFFFFF>mov     dword ptr [ebp-BC], 8
  004023D6   .  FFD3          call    ebx                              ;  <&MSVBVM50.__vbaVarDup>
  004023D8   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
  004023DE   .  8D4D 94       lea     ecx, dword ptr [ebp-6C]
  004023E1   .  C785 5CFFFFFF>mov     dword ptr [ebp-A4], 00401CC0     ;  UNICODE "Leider Falsch!   Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir !  Andrenalin@g"
  1                                         ----------->1.来到这,然后向找跳转
  004023EB   .  C785 54FFFFFF>mov     dword ptr [ebp-AC], 8
  -------------------------------------------------------------------
  内存注册机
  中断地址:402295
  中断次数:1
  第一字节:8D
  指令长度:1
  注册码在哪呢?
  分析:假注册码在ebp-58(这里等于0012F488),真注册码在'0012F4B4'(即ebp-2C)
  故,如图设置:
  

  还要请教下高手那个”地址指针“是什么用的,为什么这里必须'打勾' 选 '1'层?  
--------------------------------------------------------------------------------
【经验总结】
  现在才知道算法好难分析哦,连在哪下手都还不知道.
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年08月08日 14:48:09

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费
支持
分享
最新回复 (21)
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
希望自己一直能保持现在的学习状态,鼓励一下自己还有所有学习破解的太菜鸟们
2007-8-8 15:01
0
雪    币: 1355
活跃值: (344)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
3
支持一下。加油
2007-8-8 20:19
0
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
谢谢支持
怎都没有人回答我的问题呢?
‘ 还要请教下高手那个”地址指针“是什么用的,为什么这里必须'打勾' 选 '1'层?  ’
2007-8-8 20:36
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
这个东西有点搞,给个算法注册机你
#include<iostream.h>
int lenA(char *p);
main()
{
    long long   a=1234567890;
    long long  sum=0;
   int i,len;
    char name[12];
    cout<<"Please input your name : \n";
    cin>>name;
    len=lenA(name);
    for(i=0;i<len;i++)
    sum+=name[i];
    sum*=a;
    cout<<"Your register code is :"<<sum/1000000000<<"-"<<sum/10000%10000<<"-"
    <<sum%1000;
    cout<<endl;
}
    int lenA(char *p)             // 在不使用 strlen 的情况之下,量度字符的长度
{
        int i,len=0;
        for(i=0;p[i]!='\0';i++)
        len++;
        return len;
}
2007-8-8 21:45
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
不在寄存器里,在堆栈里,所以要用到地址指针,指向内存数值
我很小用 KeyMake  的
这个 CM 的算法藏得不算很隐蔽,在系统领空计算
2007-8-8 21:50
0
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
谢谢大家回复
我继续学习
知识非常欠缺
2007-8-9 07:41
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
8
看不懂C
2007-8-9 12:17
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
我知道大侠用的是 Delphi ,推荐一本你认为经典的入门书籍吧,太难的我怕学不会
2007-8-9 20:40
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
10
苍天,你叫我什么?大侠?你笑话我也不用这样吧?啊?

Delphi的入门的书籍我个人认为我电脑上的几本电子书不错,还有我买了本人民邮电出版社出版的

《Delphi开发技术大全》,电脑上的电子书和这本纸书就没看过,唉,浪费资源啊

还有,你介意不介意用中文把那段算法来说明下呢?
2007-8-10 23:47
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
一点取笑的意思都没有 , 我在某个 群里见过你 ,只是没聊过
感觉这个 CM 的算法超简单,就是在隐藏算法那里做了点功夫

#include<iostream.h>
int lenA(char *p);
main()
{
    long long   a=1234567890;       //  固定数值
    long long  sum=0;
   int i,len;
    char name[12];
    cout<<"Please input your name : \n";
    cin>>name;
    len=lenA(name);        // 获取用户名长度
    for(i=0;i<len;i++)
    sum+=name[i];           // 好一个用户名累加
    sum*=a;               // 累加结果和 固定的数值 相乘
   
    cout<<"Your register code is :"<<sum/1000000000<<"-"<<sum/10000%10000<<"-"
    <<sum%1000;      //这一段 是求出计算出来的数值的 第四位和第九位 改为 -
   
    cout<<endl;
}
    int lenA(char *p)             // 在不使用 strlen 的情况之下,量度字符的长度
{
  int i,len=0;
  for(i=0;p[i]!='\0';i++)
  len++;
  return len;
}
2007-8-11 00:10
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
12
算法就是说把用户名的ascii累加然后乘以固定数值?然后把第四位和第九位改成“-”?我说的对不对?第四位和第九位要改成“-”是覆盖还是插入了?如果是插入的话,你这算法注册机是不是麻烦了点了呢?直接用个insert函数不就行了么?

不好意思,忘记你用的C++了,我不知道C++里有没有insert这个函数

你在哪个群里见到过我?有机会的话咱兄弟两聊聊,呵呵
2007-8-11 14:25
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
如果是插入的话,就没有那段了,是覆盖
还有我一般都不用函数的,就如 strlen 一样,自己写,不过都很烂,不过可以思考一下他们的工作过程
2007-8-11 18:34
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
14
高手就是不一样,自己写函数,我都不能自定义函数,菜啊
2007-8-11 20:04
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
苍天,你叫我什么?高手?你笑话我也不用这样吧?啊?
2007-8-11 20:32
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
16
哈哈,你盗版喔,我就不会写自定义函数,没学过
2007-8-11 20:46
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
我没你的 QQ 你问老虎就知道了,哈哈,很高兴认识你,我也是大菜鸟,好久没编程了
2007-8-11 21:06
0
雪    币: 2256
活跃值: (941)
能力值: (RANK:2210 )
在线值:
发帖
回帖
粉丝
18
呵呵
分析的不错,争取下才把分析的过程写的更详细一些,尝试着把算法分析出来
2007-8-11 21:53
0
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
让我分析算法还相当有难度的
但我有信心
破解太简单了嘛~~
对不
2007-8-12 22:29
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
20
破解不简单的兄弟,好像我这样玩了一年多了,什么都不懂,简单的没兴趣,难的又搞不了的时候,
你就知道什么叫做难了,现在要进步就要去较完整的学习系统机制等。。。。漫长啊!!!!!
2007-8-13 08:54
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
21
破解是一个痛苦,快乐,漫长的旅程
2007-8-13 11:33
0
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22

现在实践已经不行了
我开始看文章了
把基础打好  然后在实践
发现不懂再去看理论书
补充基础  哈哈
2007-8-13 21:44
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册