吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

楼主: BattleHeart

[原创逆向图文] 160个CrackerMe之34

  [复制链接]
dengwb1 发表于 2015-7-22 15:24 | 显示全部楼层

下来看看,谢谢分享啊
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
408116102 发表于 2015-7-27 08:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
botanycc 发表于 2015-7-29 11:50 | 显示全部楼层

进来看看,吸取经验
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
herowuking 发表于 2015-8-7 22:28 | 显示全部楼层

楼主分析的不错!这个CrackME以前我也做过注册机(Python写的),有一点点和楼主分析的不一样,贴出来跟大家交流:
Cruehead.3.exe我是在看雪下的哈,但是看楼主分析应该是一样的~
00401311  /$  33C9          xor ecx,ecx                              ;  关键CALL1-计算前14个字符
00401313  |.  33C0          xor eax,eax                              ;  kernel32.BaseThreadInitThunk
00401315  |.  8B7424 04     mov esi,dword ptr ss:[esp+0x4]           ;  esi里面存储从文件读取的18位序列号字符串
00401319  |.  B3 41         mov bl,0x41                              ;  大写字母A的ASCII,存入bl
0040131B  |>  8A06          /mov al,byte ptr ds:[esi]                ;  循环取字符
0040131D  |.  32C3          |xor al,bl                               ;  与'A'的ASCII做异或,下一个循环'A'++
0040131F  |.  8806          |mov byte ptr ds:[esi],al                ;  最终结果存回去,逆向成功后显示用户名
00401321  |.  46            |inc esi                                 ;  取下一个字母
00401322  |.  FEC3          |inc bl                                  ;  'A'++
00401324  |.  0105 F9204000 |add dword ptr ds:[0x4020F9],eax         ;  加上每一轮循环的结果,并存入ds:[0x4020F9]
0040132A  |.  3C 00         |cmp al,0x0
0040132C  |.  74 07         |je short Cruehead.00401335              ;  al==0 则跳出,否则cl++,bl != 0x4F (大写字母O)继续循环
0040132E  |.  FEC1          |inc cl
00401330  |.  80FB 4F       |cmp bl,0x4F                             ;  字母'O'
00401333  |.^ 75 E6         \jnz short Cruehead.0040131B             ;  只计算前14个字符 4F-41
00401335  |>  890D 49214000 mov dword ptr ds:[0x402149],ecx
0040133B  \.  C3            retn
0040133C  /$  8B7424 04     mov esi,dword ptr ss:[esp+0x4]           ;  关键CALL2-取后四个字符值
00401340  |.  83C6 0E       add esi,0xE                              ;  字符串指针偏移14
00401343  |.  8B06          mov eax,dword ptr ds:[esi]               ;  将后面4个字符的ASCII值小端序放入EAX
00401345  \.  C3            retn


Python注册机代码(支持中文用户名):
  1. #!/usr/bin/env python
  2. #-*- coding: UTF-8 -*-
  3. #########################
  4. # Cruehead.3.keygen.py
  5. # By Herowuking

  6. import sys        #使用sys模块,标准输入

  7. def CalcKeyFileString(name):
  8.         arr = range(0x41,0x50)       
  9.         name14 = "{0: <14}".format(name)                #用空格补全14个字符
  10.         nameNew = ""                                                        <font color="#ff0000">#用来存储加密后的用户名</font>
  11.         #print "{0}:{1}".format(name14,len(name14))
  12.         nameXOR = 0                                                                #用来存储用户名异或运算结果
  13.         i=0
  14.         for c in name14:
  15.                 nameNew += chr(ord(c)^arr[i])
  16.                 nameXOR += ord(c)                                        #nameNew中的字符与arr[i]异或运算之后,得到的是加密之前用户名对应的字符,因此直接加ASCII即可
  17.                 i += 1                                                                # name14[i] = nameNew[i]^arr[i] = (name14[i]^arr[i])^arr[i]
  18.         nameXOR ^= 0x12345678
  19.         namekey = nameNew
  20.         HEXkey = "{0:x}".format(nameXOR)
  21.         #print HEXkey
  22.         for i in range(8,0,-2):
  23.                 #print HEXkey[i-2:i]
  24.                 asc = int(HEXkey[i-2:i],16)                        #16进制字符串转整数
  25.                 namekey += chr(asc)
  26.         return namekey
  27.        
  28. nameStr = raw_input(u"请输入用户名,不要超过14个字符或7个中文:\n".encode("GBK"))
  29. nameLen = len(nameStr)
  30. while nameLen<=0 or nameLen>14:
  31.         nameStr = raw_input(u"输入无效,请重新输入用户名,不要超过14个字符或7个中文:\n".encode("GBK"))
  32. keyStr = CalcKeyFileString(nameStr)
  33. KEYFILE = open('CRACKME3.KEY','w+')
  34. KEYFILE.write(keyStr)
  35. KEYFILE.flush()
  36. KEYFILE.seek(0)
  37. print "The KEYFILE string is:%s" % KEYFILE.readline()
  38. print u"授权文件CRACKME3.KEY创建成功!".encode("GBK")
  39. KEYFILE.close()
复制代码
截图20150807222543.jpg

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
落泪~伤 发表于 2015-8-11 09:09 | 显示全部楼层

你这转发人家某逆向的真不要脸

点评

BattleHeart”点评说:
某破解的Martin就是我自己,如果你看到的是某破解里面的名字不一样的话这个情有可原。  发表于 2015-8-20 16:03
BattleHeart”点评说:
请搞清楚情况再说哈~  发表于 2015-8-20 16:03
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| BattleHeart 发表于 2015-8-20 16:02 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
易支烟 发表于 2015-8-28 18:34 | 显示全部楼层

必须的嘛要支持
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
垚森 发表于 2015-9-4 14:56 | 显示全部楼层

这个怎么用?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
帝皇 发表于 2015-9-5 20:41 | 显示全部楼层

虽然看不懂,但是会努力学的!保存下来以后学习!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
王树全 发表于 2015-11-16 09:11 | 显示全部楼层

谢谢侬啦,真心等待
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

21层
22层
23层
24层
25层
26层
27层
28层
29层
30层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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