• 年轻人式油腻:无所事事 折寿损福 2019-07-21
  • 中国军队将参加“国际军事比赛 2019-07-06
  • 西班牙vs阿根廷6比1狂胜 梅西因伤作壁上观愤然离场 2019-07-06
  • 十大城市二手房市场“整体降温”态势难改 2019-07-03
  • 高清:世界杯小组赛B组摩洛哥对阵伊朗 两队球迷花样助阵 2019-07-03
  • 中心城区核心片组完成签约清零任务 2019-07-02
  • 《浙乡志》第40期:景宁率先推“清廉指数” 长兴编纂《村官志》上墙 2019-06-29
  • 特金明日将通电话 提醒谁莫忘感恩? (原创首发) 2019-06-29
  • 新时代青年大学生 学习新思想 同上一堂课 2019-06-25
  • 去年中国汽车召回同比增长77% 连续4年刷新纪录 2019-06-14
  • 启新航 谋新篇——陕西省第十三次党大会——西部网、陕西头条客户端 2019-06-14
  • 回复@艾鸣1:你的老蚕暴露无遗,还好意思笑?这个帖子会成为你终身的耻辱! 2019-06-13
  • 风力发电机 藏身高楼中 2019-06-11
  • 隔代育儿,“晚年”该如何呵护童年 2019-06-11
  • 新西兰总理预产期临近 民众纷纷猜测宝宝体重性别 2019-06-10
  • 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|北京pk10最稳办法 www.yhhjx.com

     找回密码
     注册[Register]

    QQ登录

    只需一步,快速开始

    搜索
    查看: 1011|回复: 9
    上一主题 下一主题

    北京pk赛车工具软件: [原创] 160个Crackme之029学习笔记

      [复制链接]
    跳转到指定楼层
    楼主
    海天一色001 发表于 2019-7-12 07:38 回帖奖励
    第29个CM程序,和第28个界面差不多,输入name/serial=“52pojie/1234567890”,程序这次没将小写字母转换成大写形式,点击“CHECK”按钮,弹出错误提示框:

    第一步、查壳:

    无壳,仍是VC++6.0编程:
    第二步、爆破
    用OD载入CoSH.3.exe,智能搜索字符串:

    在004015C5错误标题这一行双击进入CPU窗口:

    在错误提示上面的004015C3处是由3个地方跳转来的,来到错误:

    再向上一行的004015C1处是跳过错误,来到成功的跳,所以将直接将004015C3处命令改成jmp 004015C1让它跳到正确提示,

    保存成可执行文件CoSH.3.jmp.exe,运行一下,不输入任何东西,点击“CHECK”按钮,弹出正确提示,爆破成功。

    第三步、追码:
    将004015 C3处的跳转指令撤消修改,观察代码,这一次要复杂得多了:
    具体分析过程如下,大致分为4部分:(每一部分起止可能不很准确)
    1、先判断name和serial的长度,均不能小于5位:
    [Asm] 纯文本查看 复制代码
    004014F5  |.  E8 AA030000   call <jmp.&MFC42.#CWnd::GetWindowTextLengthA_3876>       ;  得到name长度
    004014FA  |.  8945 EC       mov [local.5],eax
    004014FD  |.  837D EC 05    cmp [local.5],0x5                                        ;  name长度不小于5位,否则失败
    00401501  |.  7F 05         jg short cosh_3.00401508                                 ;  下步取假码
    00401503  |.  E9 BB000000   jmp cosh_3.004015C3                                      ;  失败
    00401508  |>  8B4D E0       mov ecx,[local.8]
    0040150B  |.  83C1 60       add ecx,0x60
    0040150E  |.  E8 91030000   call <jmp.&MFC42.#CWnd::GetWindowTextLengthA_3876>       ;  [eax]=[ecx]=len(serial) 得到假码长度
    00401513  |.  8945 E8       mov [local.6],eax
    00401516  |.  837D E8 05    cmp [local.6],0x5                                        ;  serial长度不小于5位
    0040151A  |.  7F 05         jg short cosh_3.00401521
    0040151C  |.  E9 A2000000   jmp cosh_3.004015C3
    00401521  |>  8B45 E0       mov eax,[local.8]

    2、用i=1 to len(name)分别与name的第i位字符的ASC值异或,再转换成相对应的字符,组成一个新的字符串;
    [Asm] 纯文本查看 复制代码
    00401570  |.  33C0          xor eax,eax
    00401572  |.  33DB          xor ebx,ebx
    00401574  |.  33C9          xor ecx,ecx
    00401576  |.  B9 01000000   mov ecx,0x1
    0040157B  |.  33D2          xor edx,edx
    0040157D  |.  8B45 E4       mov eax,[local.7]                                        ;  [eax]=name.text
    00401580  |>  8A18          /mov bl,byte ptr ds:[eax]                                ;  [bl]=asc(name(i))
    00401582  |.  32D9          |xor bl,cl                                               ;  [bl]=[bl] xor 1
    00401584  |.  8818          |mov byte ptr ds:[eax],bl                                ;  ds:[eax]=[bl]
    00401586  |.  41            |inc ecx                                                 ;  [ecx]=[ecx]+1
    00401587  |.  40            |inc eax                                                 ;  [eax]=[eax]+1
    00401588  |.  8038 00       |cmp byte ptr ds:[eax],0x0                               ;  cmp asc(name(i+1),0
    0040158B  |.^ 75 F3         \jnz short cosh_3.00401580


    3、用i=10 to len(name)+10分别与serial的第i位字符的ASC值异或,再转换成相对应的字符,组成一个新的字符串;
    [Asm] 纯文本查看 复制代码
    0040158D  |.  33C0          xor eax,eax
    0040158F  |.  33DB          xor ebx,ebx
    00401591  |.  33C9          xor ecx,ecx
    00401593  |.  B9 0A000000   mov ecx,0xA                                              ;  [ecx]=0xA
    00401598  |.  33D2          xor edx,edx
    0040159A  |.  8B45 F0       mov eax,[local.4]                                        ;  [eax]=serial.text
    0040159D  |>  8A18          /mov bl,byte ptr ds:[eax]                                ;  [bl]=asc(serial(i))
    0040159F  |.  32D9          |xor bl,cl                                               ;  [bl]=[bl] xor 0xA
    004015A1  |.  8818          |mov byte ptr ds:[eax],bl                                ;  ds:[eax]=[bl]
    004015A3  |.  41            |inc ecx                                                 ;  [ecx]=[ecx]+1
    004015A4  |.  40            |inc eax                                                 ;  [eax]=[eax]+1
    004015A5  |.  8038 00       |cmp byte ptr ds:[eax],0x0
    004015A8  |.^ 75 F3         \jnz short cosh_3.0040159D

    4、检查第2部分和第3部分生成的两个新的字符串每一位是否相等:
    [Asm] 纯文本查看 复制代码
    004015AA  |.  8B45 E4       mov eax,[local.7]                                        ;  name得到的字串
    004015AD  |.  8B55 F0       mov edx,[local.4]                                        ;  serial得到的字串
    004015B0  |>  33C9          /xor ecx,ecx
    004015B2  |.  8A18          |mov bl,byte ptr ds:[eax]
    004015B4  |.  8A0A          |mov cl,byte ptr ds:[edx]
    004015B6  |.  3AD9          |cmp bl,cl                                               ;  每一位进行比较,有一位不等就跳到错误
    004015B8  |.  75 09         |jnz short cosh_3.004015C3
    004015BA  |.  40            |inc eax
    004015BB  |.  42            |inc edx
    004015BC  |.  8038 00       |cmp byte ptr ds:[eax],0x0
    004015BF  |.^ 75 EF         \jnz short cosh_3.004015B0
    004015C1  |.  EB 16         jmp short cosh_3.004015D9
    004015C3      6A 00         push 0x0
    004015C5  |.  68 6C304000   push cosh_3.0040306C                                     ;  ERROR
    004015CA  |.  68 40304000   push cosh_3.00403040                                     ;  One of the Details you entered was wrong

    那么注册算法就很清楚了:
    首先serial的长度必须和name的长度相等,且大于4;
    其次asc(serial(i)) xor (i+9) = asc(name(i)) xor i。
    因为xor的可逆性,所以asc(serial(i)) = asc(name(i)) xor i xor (i+9)
    Serial(i)=chr(asc(name(i)) xor i xor (i+9))
    最后按序连接每一个字符就得到真码了。具体代码见注册机。
    附件 029.zip (83.7 KB, 下载次数: 1) ,含CM原程序、爆破后的程序、注册机、OD的调试文件等。百度链接是://pan.baidu.com/s/1skMkJY9,密码: 86pm,160个CM、我已练习过的前29个crackme程序(不含012)都在里面。

    免费评分

    参与人数 1吾爱币 +1 热心值 +1 收起 理由
    为海尔而战 + 1 + 1 我很赞同!

    查看全部评分

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

    沙发
    wangqiuguo 发表于 2019-7-12 08:08
    这个厉害,学习成长的路段
    3#
    daymissed 发表于 2019-7-12 08:32
    4#
    血羽苍龙 发表于 2019-7-12 08:36
    5#
    wapj152321 发表于 2019-7-12 08:43
    谢谢分享
    6#
    shelly1314 发表于 2019-7-12 08:57
    感谢楼主分享
    7#
    jizigo 发表于 2019-7-12 15:42
    顶一个,终于有一个适合新手的教程了
    8#
    30900 发表于 2019-7-12 21:24
    我是菜鸟,感谢大神分享!学习啦!
    9#
    吾乃齐天大圣 发表于 2019-7-13 09:59
    感谢楼主!
    10#
    益达婷宝 发表于 2019-7-13 23:38
    是真的厉害的我
    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

    快速回复 收藏帖子 返回列表 搜索

    RSS订阅|小黑屋|联系我们|北京pk10最稳办法 ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2019-7-22 20:49

    Powered by Discuz!

    © 2001-2017 Comsenz Inc.

    快速回复 北京pk10最稳办法 返回列表
  • 年轻人式油腻:无所事事 折寿损福 2019-07-21
  • 中国军队将参加“国际军事比赛 2019-07-06
  • 西班牙vs阿根廷6比1狂胜 梅西因伤作壁上观愤然离场 2019-07-06
  • 十大城市二手房市场“整体降温”态势难改 2019-07-03
  • 高清:世界杯小组赛B组摩洛哥对阵伊朗 两队球迷花样助阵 2019-07-03
  • 中心城区核心片组完成签约清零任务 2019-07-02
  • 《浙乡志》第40期:景宁率先推“清廉指数” 长兴编纂《村官志》上墙 2019-06-29
  • 特金明日将通电话 提醒谁莫忘感恩? (原创首发) 2019-06-29
  • 新时代青年大学生 学习新思想 同上一堂课 2019-06-25
  • 去年中国汽车召回同比增长77% 连续4年刷新纪录 2019-06-14
  • 启新航 谋新篇——陕西省第十三次党大会——西部网、陕西头条客户端 2019-06-14
  • 回复@艾鸣1:你的老蚕暴露无遗,还好意思笑?这个帖子会成为你终身的耻辱! 2019-06-13
  • 风力发电机 藏身高楼中 2019-06-11
  • 隔代育儿,“晚年”该如何呵护童年 2019-06-11
  • 新西兰总理预产期临近 民众纷纷猜测宝宝体重性别 2019-06-10
  • 彩票七星彩开奖直播 浙江快乐时时彩开奖号码走势图 3d组选222的前后关系 新疆18选7中奖号码 七星彩南国彩票论坛一 陕西快乐十分怎么胆拖 3d彩票论坛网 14005期4场进球预测 白小姐开马结果 广西快乐双彩最新开奖结果查询结果 全年金言猜特码 云南快乐十分官网下载 广东36选7几时开奖时间 12生肖时时彩开奖结果 中国竞彩网竞彩投注比例