吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4940|回复: 21
收起左侧

[CrackMe] (已破解)我也发一个CM

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

本帖最后由 zbnysjwsnd8 于 2017-8-13 11:04 编辑


爆破追码随意
爆破需要发爆破点
追码需要发注册码

@dazong
已被大牛破解注册码:1009

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
TungSyuLou + 1 + 1 热心回复!

查看全部评分

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

dazong 发表于 2017-8-12 16:31
zbnysjwsnd8 发表于 2017-8-12 16:30
说一下怎么改的把。

自慰的 ,  破不掉。
SeriousSnow 发表于 2017-8-12 21:08
[Asm] 纯文本查看 复制代码
00401000 > $  E8 0D010000   call <jmp.&kernel32.AllocConsole>        ; [AllocConsole
00401005   .  6A F6         push -0xA                                ; /DevType = STD_INPUT_HANDLE
00401007   .  E8 0C010000   call <jmp.&kernel32.GetStdHandle>        ; \GetStdHandle
0040100C   .  A3 18304000   mov dword ptr ds:[0x403018],eax          ;  获取标准输入句柄
00401011   .  6A F5         push -0xB                                ; /DevType = STD_OUTPUT_HANDLE
00401013   .  E8 00010000   call <jmp.&kernel32.GetStdHandle>        ; \GetStdHandle
00401018   .  A3 1C304000   mov dword ptr ds:[0x40301C],eax          ;  获取标准输出句柄
0040101D   .  6A 00         push 0x0                                 ; /pOverlapped = NULL
0040101F   .  68 20304000   push CrackMe.00403020                    ; |pBytesWritten = CrackMe.00403020
00401024   .  6A 05         push 0x5                                 ; |nBytesToWrite = 0x5
00401026   .  68 00304000   push CrackMe.00403000                    ; |Buffer = CrackMe.00403000
0040102B   .  FF35 1C304000 push dword ptr ds:[0x40301C]             ; |hFile = 00000007
00401031   .  E8 EE000000   call <jmp.&kernel32.WriteFile>           ; \WriteFile
00401036   .  6A 00         push 0x0                                 ; /pOverlapped = NULL
00401038   .  68 20304000   push CrackMe.00403020                    ; |pBytesRead = CrackMe.00403020
0040103D   .  68 00020000   push 0x200                               ; |BytesToRead = 200 (512.)
00401042   .  68 28304000   push CrackMe.00403028                    ; |Buffer = CrackMe.00403028
00401047   .  FF35 18304000 push dword ptr ds:[0x403018]             ; |hFile = 00000003
0040104D   .  E8 CC000000   call <jmp.&kernel32.ReadFile>            ; \ReadFile
00401052   .  68 28304000   push CrackMe.00403028                    ;  ASCII "123456"
00401057   .  E8 9D000000   call CrackMe.004010F9                    ;  获取长度
0040105C   .  8D1D 28304000 lea ebx,dword ptr ds:[0x403028]
00401062   .  66:C74418 FE >mov word ptr ds:[eax+ebx-0x2],0x0        ;  去换行符
00401069   .  53            push ebx
0040106A   .  E8 8A000000   call CrackMe.004010F9                    ;  从新获取长度
0040106F   .  8BC8          mov ecx,eax                              ;  ecx = 长度
00401071   .  8D3D 28304000 lea edi,dword ptr ds:[0x403028]          ;  edi->字符串
00401077   .  33C0          xor eax,eax                              ;  eax = 0
00401079   .  33DB          xor ebx,ebx                              ;  ebx=0
0040107B   .  33D2          xor edx,edx                              ;  edx=0
0040107D   >  8A3C07        mov bh,byte ptr ds:[edi+eax]             ;  逐个获取字符
00401080   .  C1CB 08       ror ebx,0x8                              ;  循环移动8位
00401083   .  03D3          add edx,ebx
00401085   .  40            inc eax
00401086   .  3BC1          cmp eax,ecx                              ;  是否读取完毕
00401088   .  74 02         je short CrackMe.0040108C                ;  结果edx,经过and后的结果
0040108A   .^ EB F1         jmp short CrackMe.0040107D               ;  结果ebx保存最后四个字符顺序3214
0040108C   >  33C9          xor ecx,ecx                              ;  ecx = 0
0040108E   .  8915 24304000 mov dword ptr ds:[0x403024],edx          ;  存放edx到输入字符串内存-4位置
00401094   .  33F6          xor esi,esi
00401096   .  EB 1A         jmp short CrackMe.004010B2
00401098   >  8A81 05304000 mov al,byte ptr ds:[ecx+0x403005]        ;  y7!
0040109E   .  3281 24304000 xor al,byte ptr ds:[ecx+0x403024]        ;  刚刚的edx
004010A4   .  8881 05304000 mov byte ptr ds:[ecx+0x403005],al        ;  逐个异或填充
004010AA   .  25 FF000000   and eax,0xFF                             ;  好像没啥用
004010AF   .  03F0          add esi,eax                              ;  累加
004010B1   .  41            inc ecx                                  ;  循环四次
004010B2   >  83F9 04       cmp ecx,0x4                              ;  判断长度是否为4 肯定不==4上面清零
004010B5   .^ 75 E1         jnz short CrackMe.00401098
004010B7   .  81FE DB020000 cmp esi,0x2DB                            ;  判断累加和是否等于2DB
004010BD   .  74 1B         je short CrackMe.004010DA                ;  输出失败
004010BF   .  6A 00         push 0x0                                 ; /pOverlapped = NULL
004010C1   .  68 20304000   push CrackMe.00403020                    ; |pBytesWritten = CrackMe.00403020
004010C6   .  6A 0A         push 0xA                                 ; |nBytesToWrite = A (10.)
004010C8   .  68 0B304000   push CrackMe.0040300B                    ; |Buffer = CrackMe.0040300B
004010CD   .  FF35 1C304000 push dword ptr ds:[0x40301C]             ; |hFile = 00000007
004010D3   .  E8 4C000000   call <jmp.&kernel32.WriteFile>           ; \WriteFile
004010D8   .  EB 19         jmp short CrackMe.004010F3               ;  输出刚刚异或后的内容,,,,(ーー゛)
004010DA   >  6A 00         push 0x0                                 ; /pOverlapped = NULL
004010DC   .  68 20304000   push CrackMe.00403020                    ; |pBytesWritten = CrackMe.00403020
004010E1   .  6A 06         push 0x6                                 ; |nBytesToWrite = 0x6
004010E3   .  68 05304000   push CrackMe.00403005                    ; |Buffer = CrackMe.00403005
004010E8   .  FF35 1C304000 push dword ptr ds:[0x40301C]             ; |hFile = 00000007
004010EE   .  E8 31000000   call <jmp.&kernel32.WriteFile>           ; \WriteFile
004010F3   >  68 F3104000   push CrackMe.004010F3
004010F8   .  C3            retn                                     ;  RET 用作跳转到 004010F3

dazong 发表于 2017-8-12 16:05




等会再试试   

本帖子中包含更多资源

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

x
dazong 发表于 2017-8-12 16:14
根本不是我这个小菜能玩的,太难了
dazong 发表于 2017-8-12 16:29

本帖子中包含更多资源

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

x
 楼主| zbnysjwsnd8 发表于 2017-8-12 16:30

说一下怎么改的把。
ugvnui 发表于 2017-8-12 18:03
正确的字符应该是[成功]
一共循环四次,注册码应该是成功的16进制码,逐个叠加值,判断最终的值是否为731也就是成功两字的十六进制码:B3 C9 B9 A6  

其实注册码也就是字符串编码应该。。前面没去看,应该不难。。

楼下大神上。。。。吃饭去了。。

点评

正确的字符确实是成功  发表于 2017-8-12 21:04
冰雨轩 发表于 2017-8-12 19:52
看都看不懂哦|!1!!!

免费评分

参与人数 1吾爱币 -8 收起 理由
cunzher -8 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

 楼主| zbnysjwsnd8 发表于 2017-8-12 21:09
SeriousSnow 发表于 2017-8-12 21:08
[mw_shl_code=asm,true]00401000 > $  E8 0D010000   call         ; [AllocConsole
00401005   .  6A F6  ...

分析的很详细 注册码是什么?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 17:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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