首页
社区
课程
招聘
[原创]第一次写破文 post上来!找成就感!
发表于: 2007-12-7 13:11 4657

[原创]第一次写破文 post上来!找成就感!

2007-12-7 13:11
4657
【文章标题】:  解密试分析
【文章作者】: 北极狐狸
【作者邮箱】: [email]eug3@163.com[/email]
【作者主页】: nothing
【作者QQ号】: 87201014
【软件名称】: 应答此贴(http://bbs.pediy.com/showthread.php?t=55973
【软件大小】: 1.81M
【下载地址】: 求助应答
【加壳方式】: nothing
【保护方式】: nothing
【编写语言】: Borland Delphi 4.0 - 5.0
【使用工具】: PeID v0.95,OllyDbg v1.10
【操作平台】: winxp
【软件介绍】:  双色球中奖
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
单步执行找到算法计算处
  我看这个算法的时候没有用什么流行的方法!由于大多都不会!
  下面的是算法的主要内容!
  0048AF2D  |> /8B4D EC       /mov     ecx, dword ptr [ebp-14]             ;计数器 0~15 (注册号是16位的)
  0048AF30  |. |BA 09000000   |mov     edx, 9                              ;这个数字是用来计算的(在下面我称它为a).. 下面雷同
  0048AF35  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]              ;这是个也是用于计算的(在下面我称它为b)...{二进制16}
  0048AF38  |. |E8 73F6FFFF   |call    0048A5B0                            ;这里应该跟进的....
  0048AF3D  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E] ;这里用到机器码,安计算出的数字选泽相对应得数
                                                                    ;比如:
                                                                    ;call 中计算出是2 选择机器码中第2个为计算结果
                                                                   ;以下前三个call计算雷同!
  0048AF41  |. |8845 E7       |mov     byte ptr [ebp-19], al
  0048AF44  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
  0048AF47  |. |BA 05000000   |mov     edx, 5
  0048AF4C  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]
  0048AF4F  |. |E8 5CF6FFFF   |call    0048A5B0
  0048AF54  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E]
  0048AF58  |. |8845 E6       |mov     byte ptr [ebp-1A], al
  0048AF5B  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
  0048AF5E  |. |BA 02000000   |mov     edx, 2
  0048AF63  |. |8B45 F4       |mov     eax, dword ptr [ebp-C]
  0048AF66  |. |E8 45F6FFFF   |call    0048A5B0
  0048AF6B  |. |8A4405 D2     |mov     al, byte ptr [ebp+eax-2E]
  0048AF6F  |. |8845 E5       |mov     byte ptr [ebp-1B], al
  0048AF72  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
  0048AF75  |. |BA 08000000   |mov     edx, 8
  0048AF7A  |. |8B45 F0       |mov     eax, dword ptr [ebp-10]      ;此值为19(二进制)
  0048AF7D  |. |E8 2EF6FFFF   |call    0048A5B0                    ;以下两call的计算结果是在密码表中选对应的结果
  0048AF82  |. |BA 50B04800   |mov     edx, 0048B050                密码表地址 0048B050~0048B063
  0048AF87  |. |8A4402 FF     |mov     al, byte ptr [edx+eax-1]
  0048AF8B  |. |8845 E4       |mov     byte ptr [ebp-1C], al
  0048AF8E  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
  0048AF91  |. |BA 01000000   |mov     edx, 1
  0048AF96  |. |8B45 F0       |mov     eax, dword ptr [ebp-10]
  0048AF99  |. |E8 12F6FFFF   |call    0048A5B0
  0048AF9E  |. |BA 50B04800   |mov     edx, 0048B050
  0048AFA3  |. |8A4402 FF     |mov     al, byte ptr [edx+eax-1]
  0048AFA7  |. |8845 E3       |mov     byte ptr [ebp-1D], al       --------------
  0048AFAA  |. |33C0          |xor     eax, eax                                 |
  0048AFAC  |. |8A45 E4       |mov     al, byte ptr [ebp-1C]                    |
  0048AFAF  |. |33D2          |xor     edx, edx                                 |
  0048AFB1  |. |8A55 E7       |mov     dl, byte ptr [ebp-19]
  0048AFB4  |. |F7EA          |imul    edx
  0048AFB6  |. |33D2          |xor     edx, edx
  0048AFB8  |. |8A55 E6       |mov     dl, byte ptr [ebp-1A]
  0048AFBB  |. |33C9          |xor     ecx, ecx                       ;  这之间的计算是{[ebp-1C]*[ebp-19]+[ebp-1A]*[ebp-1D]+[ebp-1B]}/10的余数
  0048AFBD  |. |8A4D E3       |mov     cl, byte ptr [ebp-1D]
  0048AFC0  |. |0FAFD1        |imul    edx, ecx                         ; 这边的计算时把机器码的字符换成ASCII码!
  0048AFC3  |. |03C2          |add     eax, edx
  0048AFC5  |. |33D2          |xor     edx, edx
  0048AFC7  |. |8A55 E5       |mov     dl, byte ptr [ebp-1B]                     |
  0048AFCA  |. |03C2          |add     eax, edx                                  |
  0048AFCC  |. |B9 0A000000   |mov     ecx, 0A                                   |
  0048AFD1  |. |33D2          |xor     edx, edx                                  |
  0048AFD3  |. |F7F1          |div     ecx                       -----------------
  0048AFD5  |. |8955 E8       |mov     dword ptr [ebp-18], edx
  0048AFD8  |. |8B45 E8       |mov     eax, dword ptr [ebp-18]
  0048AFDB  |. |E8 00F6FFFF   |call    0048A5E0
  0048AFE0  |. |8B55 F8       |mov     edx, dword ptr [ebp-8]
  0048AFE3  |. |8B4D EC       |mov     ecx, dword ptr [ebp-14]
  0048AFE6  |. |88440A 01     |mov     byte ptr [edx+ecx+1], al
  0048AFEA  |. |FF45 EC       |inc     dword ptr [ebp-14]
  0048AFED  |. |837D EC 10    |cmp     dword ptr [ebp-14], 10
  0048AFF1  |.^\0F85 36FFFFFF \jnz     0048AF2D
  
  
  -----------------------------------------------------------------------
  下面是跟进的内容
  0048A5B0  /$  55            push    ebp
  0048A5B1  |.  8BEC          mov     ebp, esp
  0048A5B3  |.  83C4 F0       add     esp, -10
  0048A5B6  |.  894D F4       mov     dword ptr [ebp-C], ecx
  0048A5B9  |.  8955 F8       mov     dword ptr [ebp-8], edx
  0048A5BC  |.  8945 FC       mov     dword ptr [ebp-4], eax
  0048A5BF  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
  0048A5C2  |.  0345 F4       add     eax, dword ptr [ebp-C]
  0048A5C5  |.  99            cdq
  0048A5C6  |.  F77D FC       idiv    dword ptr [ebp-4]
  0048A5C9  |.  8955 F0       mov     dword ptr [ebp-10], edx
  0048A5CC  |.  837D F0 00    cmp     dword ptr [ebp-10], 0
  0048A5D0  |.  75 06         jnz     short 0048A5D8
  0048A5D2  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  0048A5D5  |.  8945 F0       mov     dword ptr [ebp-10], eax
  0048A5D8  |>  8B45 F0       mov     eax, dword ptr [ebp-10]
  0048A5DB  |.  8BE5          mov     esp, ebp
  0048A5DD  |.  5D            pop     ebp
  0048A5DE  \.  C3            retn
  
  
  这个计算没有什么大用处!
  主要是把 (a+计数器值)/b的余数作为结果返回
  --------------------------------------------------------------------------
  复制下面的代码放入 文本文件中后缀名改为vbs 双击执行.为注册机
  --------------------------------------------------------------------------
  db=array(211,162,186,192,203,171,201,171,199,242,214,208,189,177,180,243,202,166,32,0)
dim strar(16)
  dim temp(16)
  str1=inputbox("输入机器码"," 双色球中奖 ------计算器")
  for i = 0 to 15
  strar(i)=left(str1,1)
  str1=right(str1,len(str1)-1)
  next
  for i = 0 to 15
  
  a=(9+i) mod 16
  if a=0 then
  a=16
  end if
  
  b=(5+i) mod 16
  if b=0 then
  b=16
  end if
  
  c=(2+i) mod 16
  if c=0 then
  c=16
  end if
  
  d=(8+i) mod 19
  if d=0 then
  d=19
  end if
  
  e=(1+i) mod 19
  if e=0 then
  e=19
  end if
  an= p(strar(a-1))
  bn= p(strar(b-1))
  cn= p(strar(c-1))
  dn=db(d-1)
  en=db(e-1)
  temp(i)=(dn*an+bn*en+cn) mod 10
  temps=temps & temp(i)
  next

  i=inputbox("注册码"," 双色球中奖 ------计算器", temps)
  
  Public function p(s)
  select case s
   case 0
   p=asc("0")
   case 1
   p=asc("1")
   case 2
   p=asc("2")
   case 3
   p=asc("3")
   case 4
   p=asc("4")
   case 5
   p=asc("5")
   case 6
   p=asc("6")
   case 7
   p=asc("7")
   case 8
   p=asc("8")
   case 9
   p=asc("9")
  end select
  end function
  
--------------------------------------------------------------------------------
【经验总结】
  仔细慢慢分析,连蒙代猜!就可以读懂代码了!
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
2
软件没有用过!
呵呵!你自己研究了
2007-12-7 21:43
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
给个鼓励啊!
真失败 都没有人愿意鼓励一下!
2007-12-17 15:51
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
别人不支持我来支持!能教教我分析算法吗?
2007-12-17 16:45
0
雪    币: 47147
活跃值: (20380)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
分析的不错,本想设精华的,但与这个规则有所不符,你看看:
看雪论坛对于所涉及到目标软件的管理2007.10.15
2007-12-17 17:31
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
6
谢谢老大!

我继续努力 争取有一天可以真正打造个精华帖!
2007-12-17 21:48
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
7
为啥没人按 罪恶的 f5 ?
2007-12-17 21:56
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵,从强大到罪恶,从膜拜到憎恨!强!!!
2007-12-18 02:29
0
游客
登录 | 注册 方可回帖
返回
//