吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4570|回复: 11
收起左侧

[CrackMe] CrackMe

[复制链接]
猫子1992 发表于 2016-3-25 11:28
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 猫子1992 于 2016-3-26 14:02 编辑

最近在学C语言,老师要求我们写一个加密程序,把程序放上来给大神玩玩,想看看程序的强度,如果哪位大神破解出来了希望能分享一下思路,主要测试一下防爆破如何









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1热心值 +1 收起 理由
Sound + 1 已经处理,感谢您对吾爱破解论坛的支持!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Vancir 发表于 2016-7-22 11:52
菜菜总算是做出了一道cm了。好高兴!
加密算法
--------------------------------------------------
对输入的name和sn进行逐位的not运算,运算结果再和注册码的not运算形式比对。
这里name的not运算结果是【00 BC B4 B1 BE B2】【即本埠】【地址:00403010】
       sn   的not运算结果是【A0 BC AD BE BC B4 B6 B1 B8 A0 A0 AF BE AC AC A8 B0 AD BB A0】   【地址:0040303A】
然后进行相反的运算就可以了,答案之前有人贴出来啦我就不贴了。
不过PEiD查为什么查不出是C编的呀?
--------------------------------------------------
代码注释
--------------------------------------------------
[Asm] 纯文本查看 复制代码
0040113B  |.  83C4 20       |add esp,0x20
0040113E  |.  33C0          |xor eax,eax
00401140  |>  8A4C04 14     |/mov cl,byte ptr ss:[esp+eax+0x14]      ;  对name转移到12FF10处
00401144  |.  884C04 7C     ||mov byte ptr ss:[esp+eax+0x7C],cl
00401148  |.  40            ||inc eax
00401149  |.  3ACB          ||cmp cl,bl
0040114B  |.^ 75 F3         |\jnz short CrackMe.00401140
0040114D  |.  33C0          |xor eax,eax
0040114F  |.  90            |nop
00401150  |>  8A4C04 44     |/mov cl,byte ptr ss:[esp+eax+0x44]
00401154  |.  888C04 AC0000>||mov byte ptr ss:[esp+eax+0xAC],cl
0040115B  |.  40            ||inc eax
0040115C  |.  3ACB          ||cmp cl,bl
0040115E  |.^ 75 F0         |\jnz short CrackMe.00401150             ;  将sn转移到12FF40处
00401160  |.  8D4424 14     |lea eax,dword ptr ss:[esp+0x14]         ;  EAX存储name地址
00401164  |.  8D50 01       |lea edx,dword ptr ds:[eax+0x1]          ;  EDX存储ancir,也即名字地址的下一位
00401167  |>  8A08          |/mov cl,byte ptr ds:[eax]               ;  计算输入的name的长度
00401169  |.  40            ||inc eax
0040116A  |.  3ACB          ||cmp cl,bl
0040116C  |.^ 75 F9         |\jnz short CrackMe.00401167
0040116E  |.  2BC2          |sub eax,edx
00401170  |.  33C9          |xor ecx,ecx                             ;  CrackMe.0040301A
00401172  |.  3BC3          |cmp eax,ebx                             ;  判断输入的name是否为空
00401174  |.  7E 0F         |jle short CrackMe.00401185
00401176  |>  8A540C 14     |/mov dl,byte ptr ss:[esp+ecx+0x14]
0040117A  |.  F6D2          ||not dl                                 ;  将name进行not操作
0040117C  |.  88540C 14     ||mov byte ptr ss:[esp+ecx+0x14],dl
00401180  |.  41            ||inc ecx                                ;  CrackMe.0040301A
00401181  |.  3BC8          ||cmp ecx,eax
00401183  |.^ 7C F1         |\jl short CrackMe.00401176
00401185  |>  8D4424 44     |lea eax,dword ptr ss:[esp+0x44]
00401189  |.  8D50 01       |lea edx,dword ptr ds:[eax+0x1]
0040118C  |.  8D6424 00     |lea esp,dword ptr ss:[esp]
00401190  |>  8A08          |/mov cl,byte ptr ds:[eax]               ;  计算输入的sn的长度
00401192  |.  40            ||inc eax
00401193  |.  3ACB          ||cmp cl,bl
00401195  |.^ 75 F9         |\jnz short CrackMe.00401190
00401197  |.  2BC2          |sub eax,edx
00401199  |.  33C9          |xor ecx,ecx                             ;  CrackMe.0040301A
0040119B  |.  3BC3          |cmp eax,ebx                             ;  判断输入的sn长度是否为空
0040119D  |.  7E 10         |jle short CrackMe.004011AF
0040119F  |.  90            |nop
004011A0  |>  8A540C 44     |/mov dl,byte ptr ss:[esp+ecx+0x44]
004011A4  |.  F6D2          ||not dl                                 ;  进行逐位not操作
004011A6  |.  88540C 44     ||mov byte ptr ss:[esp+ecx+0x44],dl
004011AA  |.  41            ||inc ecx                                ;  CrackMe.0040301A
004011AB  |.  3BC8          ||cmp ecx,eax
004011AD  |.^ 7C F1         |\jl short CrackMe.004011A0
004011AF  |>  B9 18304000   |mov ecx,CrackMe.00403018                ;  即本埠   ->应该是变换后的答案name
004011B4  |.  8D4424 14     |lea eax,dword ptr ss:[esp+0x14]         ;  这里EAX取的是变换后的name地址
004011B8  |>  8A10          |/mov dl,byte ptr ds:[eax]
004011BA  |.  3A11          ||cmp dl,byte ptr ds:[ecx]
004011BC  |.  75 1A         ||jnz short CrackMe.004011D8             ;  关键的判断跳转
004011BE  |.  3AD3          ||cmp dl,bl                              ;  判断是否逐字比较完毕
004011C0  |.  74 12         ||je short CrackMe.004011D4
004011C2  |.  8A50 01       ||mov dl,byte ptr ds:[eax+0x1]
004011C5  |.  3A51 01       ||cmp dl,byte ptr ds:[ecx+0x1]
004011C8  |.  75 0E         ||jnz short CrackMe.004011D8             ;  关键的判断跳转
004011CA  |.  83C0 02       ||add eax,0x2
004011CD  |.  83C1 02       ||add ecx,0x2                            ;  答案存储在ecx地址中
004011D0  |.  3AD3          ||cmp dl,bl
004011D2  |.^ 75 E4         |\jnz short CrackMe.004011B8
004011D4  |>  33C0          |xor eax,eax
004011D6  |.  EB 05         |jmp short CrackMe.004011DD
004011D8  |>  1BC0          |sbb eax,eax
004011DA  |.  83D8 FF       |sbb eax,-0x1
004011DD  |>  3BC3          |cmp eax,ebx
004011DF  |.  75 38         |jnz short CrackMe.00401219
004011E1  |.  B9 48304000   |mov ecx,CrackMe.00403048
004011E6  |.  8D4424 44     |lea eax,dword ptr ss:[esp+0x44]
004011EA  |.  8D9B 00000000 |lea ebx,dword ptr ds:[ebx]
004011F0  |>  8A10          |/mov dl,byte ptr ds:[eax]               ;  很显然这里就是对sn的比较
004011F2  |.  3A11          ||cmp dl,byte ptr ds:[ecx]
004011F4  |.  75 1A         ||jnz short CrackMe.00401210             ;  关键判断跳转
004011F6  |.  3AD3          ||cmp dl,bl
004011F8  |.  74 12         ||je short CrackMe.0040120C
004011FA  |.  8A50 01       ||mov dl,byte ptr ds:[eax+0x1]
004011FD  |.  3A51 01       ||cmp dl,byte ptr ds:[ecx+0x1]
00401200  |.  75 0E         ||jnz short CrackMe.00401210
00401202  |.  83C0 02       ||add eax,0x2
00401205  |.  83C1 02       ||add ecx,0x2
00401208  |.  3AD3          ||cmp dl,bl
0040120A  |.^ 75 E4         |\jnz short CrackMe.004011F0

--------------------------------------------------

免费评分

参与人数 1热心值 +1 收起 理由
猫子1992 + 1 已答复!

查看全部评分

SeriousSnow 发表于 2016-8-15 14:54
好像是加解密的。。。。这。是我要整的话。先有正确的用户名密码一组。然后看

[Asm] 纯文本查看 复制代码
00401000  /$  56            push esi                                 ;  msvcr90.printf
00401001  |.  57            push edi                                 ;  msvcr90.scanf
00401002  |.  8BF9          mov edi,ecx                              ;  msvcr90.7855215C
00401004  |.  8BF0          mov esi,eax
00401006  |.  8A07          mov al,byte ptr ds:[edi]
00401008  |.  33C9          xor ecx,ecx                              ;  msvcr90.7855215C
0040100A  |.  84C0          test al,al
0040100C  |.  74 18         je short CrackMe.00401026
0040100E  |.  53            push ebx
0040100F  |.  90            nop
00401010  |>  0FBEC0        /movsx eax,al
00401013  |.  99            |cdq
00401014  |.  BB 0A000000   |mov ebx,0xA
00401019  |.  F7FB          |idiv ebx
0040101B  |.  8A47 01       |mov al,byte ptr ds:[edi+0x1]
0040101E  |.  47            |inc edi                                 ;  msvcr90.scanf
0040101F  |.  03CA          |add ecx,edx                             ;  msvcr90.785BBB60
00401021  |.  84C0          |test al,al
00401023  |.^ 75 EB         \jnz short CrackMe.00401010
00401025  |.  5B            pop ebx                                  ;  CrackMe.00402130
00401026  |>  8A06          mov al,byte ptr ds:[esi]
00401028  |.  84C0          test al,al
0040102A  |.  74 19         je short CrackMe.00401045
0040102C  |.  8D6424 00     lea esp,dword ptr ss:[esp]
00401030  |>  0FBEC0        /movsx eax,al
00401033  |.  99            |cdq
00401034  |.  BF 0A000000   |mov edi,0xA
00401039  |.  F7FF          |idiv edi                                ;  msvcr90.scanf
0040103B  |.  8A46 01       |mov al,byte ptr ds:[esi+0x1]
0040103E  |.  46            |inc esi                                 ;  msvcr90.printf
0040103F  |.  03CA          |add ecx,edx                             ;  msvcr90.785BBB60
00401041  |.  84C0          |test al,al
00401043  |.^ 75 EB         \jnz short CrackMe.00401030
00401045  |>  803D 80304000>cmp byte ptr ds:[0x403080],0x0
0040104C  |.  5F            pop edi                                  ;  CrackMe.00402130
0040104D  |.  5E            pop esi                                  ;  CrackMe.00402130
0040104E  |.  74 2D         je short CrackMe.0040107D
00401050  |.  B8 89888888   mov eax,0x88888889
00401055  |.  F7E9          imul ecx                                 ;  msvcr90.7855215C
00401057  |.  03D1          add edx,ecx                              ;  msvcr90.7855215C
00401059  |.  C1FA 05       sar edx,0x5
0040105C  |.  8BC2          mov eax,edx                              ;  msvcr90.785BBB60
0040105E  |.  C1E8 1F       shr eax,0x1F
00401061  |.  03C2          add eax,edx                              ;  msvcr90.785BBB60
00401063  |.  8BD0          mov edx,eax
00401065  |.  C1E2 04       shl edx,0x4
00401068  |.  2BD0          sub edx,eax
0040106A  |.  03D2          add edx,edx                              ;  msvcr90.785BBB60
0040106C  |.  03D2          add edx,edx                              ;  msvcr90.785BBB60
0040106E  |.  2BCA          sub ecx,edx                              ;  msvcr90.785BBB60
00401070  |.  B8 80304000   mov eax,CrackMe.00403080                 ;  ASCII "95"
00401075  |>  0008          /add byte ptr ds:[eax],cl
00401077  |.  40            |inc eax
00401078  |.  8038 00       |cmp byte ptr ds:[eax],0x0
0040107B  |.^ 75 F8         \jnz short CrackMe.00401075
0040107D  \>  C3            retn

 

解密后正确的到底是个什么东西,然后下次直接path
v191995501 发表于 2016-3-25 11:46
 楼主| 猫子1992 发表于 2016-3-25 12:18
v191995501 发表于 2016-3-25 11:46
没图,应该不算是求破吧

自己写的东西来求破
jvy007 发表于 2016-3-25 16:40

CKNAME
_CRACKING__PASSWORD_

免费评分

参与人数 2热心值 +2 收起 理由
Sound + 1 已经处理,感谢您对吾爱破解论坛的支持!
猫子1992 + 1 我很赞同!

查看全部评分

 楼主| 猫子1992 发表于 2016-3-25 19:43
jvy007 发表于 2016-3-25 16:40
CKNAME
_CRACKING__PASSWORD_

能分享一下思路吗?
别人都叫我老木 发表于 2016-3-26 12:48
本帖最后由 别人都叫我老木 于 2016-3-26 13:25 编辑

https://yunpan.cn/cqgHKRhVF6Xcs (提取码:1326) 这个不知道行不行。
 楼主| 猫子1992 发表于 2016-3-26 14:00
Math 发表于 2016-3-26 13:56
CKNAME和_CRACKING__PASSWORD_
你把输入的用户名和密码全部都not了然后比较,找到比较的变量一个个not过来 ...

对的,就用了一个取反的操作,算法比较简单,主要试一试防爆破,然后的话最主要是看看这个设计体系是否合理,加密算法的话以后可以直接用别人现成的
 楼主| 猫子1992 发表于 2016-3-26 14:09
别人都叫我老木 发表于 2016-3-26 12:48
https://yunpan.cn/cqgHKRhVF6Xcs (提取码:1326) 这个不知道行不行。

你这个不行的,如果正确的话会出现提示的OK,   OK就相当于重要数据,算法比较简单,主要就是试一试防爆破
D1peng 发表于 2016-3-29 22:09
羡慕楼主有老师教,  自学小菜鸡路过 ,  好难~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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