飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

楼主: kelvar

[原创] 双色球中奖机4.2版破解

[复制链接]

该用户从未签到

发表于 2009-11-9 16:08:17 | 显示全部楼层 |阅读模式
【文章标题】: 双色球中奖机4.2版破解
【文章作者】: kelvar
【作者邮箱】: kelvar@sohu.com
【作者QQ号】: 44232165
【软件名称】: 双色球中奖机破解
【下载地址】: 自己搜索下载
【加壳方式】: 没查出来
【保护方式】: 加壳加网络验证
【编写语言】: 易语言
【使用工具】: OD,易语言自动脱壳
【操作平台】: windows xp3
【软件介绍】: 双色球中奖机
【作者声明】: 凑热闹~^_^,小菜鸟写文章
--------------------------------------------------------------------------------
【详细过程】
  第一步还是查壳,yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehk
  一看就是个不好惹的主,好在有E语言的自动脱壳机,运行下。程序自动给脱好了。方便。
  
  第二步,OD载入脱壳后的程序,停在下面的入口处。

  1.   00401000 u>/$  E8 06000000        call unpack.0040100B
  2.   00401005   |.  50                 push eax                       ; /ExitCode
  3.   00401006   \.  E8 BB010000        call <jmp.&KERNEL32.ExitProces>; \ExitProcess
  4.   0040100B   /$  55                 push ebp
  5.   0040100C   |.  8BEC               mov ebp,esp
  6.   0040100E   |.  81C4 F0FEFFFF      add esp,-110
  7.   00401014   |.  E9 83000000        jmp unpack.0040109C
  8.   00401019   |.  6B 72 6E 6C 6E 2E >ascii "krnln.fnr",0
  9.   00401023   |.  6B 72 6E 6C 6E 2E >ascii "krnln.fne",0
  10.   
复制代码
E语言的入口有特定的字符串可以查找。OD载入后,就F9运行程序吧,当程序运行后,ALT+E
  选中易语言的核心库krnln,双击进去。然后CTRL+B,查找FF 55 FC
  查找到这个Call后F2下断。现在输入假码112233445566 和用户 kelvar  名后,单击 登陆软件
  程序出现登陆失败对话框,不管它,点击确定。
  
  
  出现错误对话框, 点击Alt+K,然后找到上面的一个MessageBoxExA

  1.   77D5085C u>  8BFF                 mov edi,edi
  2.   77D5085E     55                   push ebp
  3.   77D5085F     8BEC                 mov ebp,esp
  4.   77D50861     6A FF                push -1
  5.   77D50863     FF75 18              push dword ptr ss:[ebp+18]
  6.   77D50866     FF75 14              push dword ptr ss:[ebp+14]
  7.   77D50869     FF75 10              push dword ptr ss:[ebp+10]
  8.   77D5086C     FF75 0C              push dword ptr ss:[ebp+C]
  9.   77D5086F     FF75 08              push dword ptr ss:[ebp+8]
  10.   77D50872     E8 8F5B0100          call user32.MessageBoxTimeoutA
  11.   77D50877     5D                   pop ebp
  12.   77D50878     C2 1400              retn 14
  13.   77D5087B     90                   nop
  14.   
复制代码
在第二个MessageBoxA上点击,然后来到代码处,下断

  1.   77D5080E     85C0                 test eax,eax
  2.   77D50810     75 0A                jnz short user32.77D5081C
  3.   77D50812     C705 201BD777 010000>mov dword ptr ds:[77D71B20],1
  4.   77D5081C     6A 00                push 0
  5.   77D5081E     FF75 14              push dword ptr ss:[ebp+14]
  6.   77D50821     FF75 10              push dword ptr ss:[ebp+10]
  7.   77D50824     FF75 0C              push dword ptr ss:[ebp+C]
  8.   77D50827     FF75 08              push dword ptr ss:[ebp+8]
  9.   77D5082A     E8 2D000000          call user32.MessageBoxExA
  10.   77D5082F     5D                   pop ebp
  11.   77D50830     C2 1000              retn 10
  12.   77D50833     90                   nop
  13.   
复制代码
程序在77D5087B处断下来了,我们手动F8向下走吧。F8一步就来到了77D5082F处。继续F8
  
  直到返回到主程序中

  1.   02C57D80     4C                   dec esp
  2.   02C57D81     0000                 add byte ptr ds:[eax],al
  3.   02C57D83     83C4 28              add esp,28
  4.   02C57D86     E9 D5010000          jmp ssqzjj.02C57F60
  5.   02C57D8B     EB 01                jmp short ssqzjj.02C57D8E
  6.   02C57D8D     7A 8B                jpe short ssqzjj.02C57D1A
  7.   02C57D8F     5D                   pop ebp
  8.   02C57D90     F8                   clc
  9.   
复制代码
此时观察堆栈中的数据发现,出现了假码

  1.   0012F51C   03D806D8    ASCII "112233445566"
  2.   0012F520   03D80D00    ASCII "42086A1EB5820DC80D0341CE709B675F"
  3.   0012F524   03D806A8
  4.   0012F528   0023C070
  5.   0012F52C   03D806B0
  6.   0012F530   03D806A8
  7.   0012F534   03D80D00    ASCII "42086A1EB5820DC80D0341CE709B675F"
  8.   0012F538  /0012F5A0
  9.   0012F53C  |02C5C937    返回到 ssqzjj.02C5C937 来自 ssqzjj.02C579DE
  10.   
复制代码
好了,那我们就去02C5C937处下个断点吧。
  由于假码"112233445566"还在堆栈中说明处理还没有完成,我们就一直向下走吧,不用修改它的流程。
  
  当程序运行到下面时,用户名也开始出现在堆栈中了。

  1.   02C580C5     8BE5                 mov esp,ebp
  2.   02C580C7     5D                   pop ebp
  3.   02C580C8     C2 1400              retn 14
  4.   02C580CB     55                   push ebp
  5.   02C580CC     8BEC                 mov ebp,esp
  6.   
复制代码
F8一步,发现程序在我们刚才下的02C5C937处了,好关键快到了,我们继续

  1.   0086BF6C     68 06000000          push 6
  2.   0086BF71     E8 49082100          call unpack.00A7C7BF
  3.   0086BF76     83C4 04              add esp,4
  4.   0086BF79     8B5D E8              mov ebx,dword ptr ss:[ebp-18]
  5.   0086BF7C     85DB                 test ebx,ebx                        ; 判断用户名是否为空
  6.   0086BF7E     74 09                je short unpack.0086BF89
  7.   0086BF80     53                   push ebx
  8.   0086BF81     E8 2D082100          call unpack.00A7C7B3
  9.   0086BF86     83C4 04              add esp,4
  10.   0086BF89     8B5D E4              mov ebx,dword ptr ss:[ebp-1C]
  11.   0086BF8C     85DB                 test ebx,ebx                        ; 判断密码是否为空
  12.   0086BF8E     74 09                je short unpack.0086BF99
  13.   0086BF90     53                   push ebx
  14.   0086BF91     E8 1D082100          call unpack.00A7C7B3                ; 关键Call
  15.   0086BF96     83C4 04              add esp,4
  16.   0086BF99     837D FC 00           cmp dword ptr ss:[ebp-4],0          ; 关键比较
  17.   0086BF9D     0F84 38020000        je unpack.0086C1DB                  ; 关键跳转  nop掉就好了。或者将38020000改为全零
  18.   0086BFA3     8B1D 80020301        mov ebx,dword ptr ds:[1030280]
  19.   0086BFA9     895D F0              mov dword ptr ss:[ebp-10],ebx
  20.   
复制代码
破解的不完美,程序登陆的时候还是要跳出一个注册名错误对话框,但是再次点击就可以去除了。最近比较忙,就不再弄了
  。另外,这个程序即使用真正的用户名和注册码登陆貌似也要点击两次。具体的算法也不会分析。期待高手出现。分析下算法
  
--------------------------------------------------------------------------------
【经验总结】
  E语言的东西没什么好说的了,查找事件按钮,下断,跟进,找关键Call和关键跳转。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年11月09日 16:05:02
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-7-28 16:14
  • 签到天数: 391 天

    [LV.9]以坛为家II

    发表于 2009-11-9 16:21:01 | 显示全部楼层
    我来顶你了,能把主程序破解发上来谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-9 17:01:43 | 显示全部楼层
    感谢楼主提供!!!支持原创~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-29 17:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-11-10 22:03:37 | 显示全部楼层
    不错呀,支持~
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-7-28 16:14
  • 签到天数: 391 天

    [LV.9]以坛为家II

    发表于 2009-11-10 22:48:13 | 显示全部楼层
    找不到e自动脱壳机,谁有上传一个吧
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2009-11-11 13:57:05 | 显示全部楼层

    回复 5# xugk 的帖子

    看雪上貌似就有这个E语言的脱壳机。去搜索下吧。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-12-6 09:01:02 | 显示全部楼层
    能把主程序破解发上来谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-12-6 10:58:06 | 显示全部楼层
    看看!好东西 !
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-3-26 09:35:50 | 显示全部楼层
    学习学习  感谢分享
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-11-14 12:29
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2019-10-14 03:38:31 | 显示全部楼层
    学习中,不错
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表