吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9348|回复: 27
收起左侧

[CrackMe] 腾讯游戏安全竞赛比赛试题

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

好了,比赛已经过了提交时间了,来放出题目让大神们看看思路,反正我解了第一题就死了
欢迎各路大神提交各种思路让大家和我参考参考
链接:https://pan.baidu.com/s/1Br3vHQ92QjNkKycvTC8AZQ 密码:jdkl

免费评分

参与人数 15吾爱币 +12 热心值 +14 收起 理由
SheZQ + 1 我很赞同!
TangJoe + 1 + 1 我很赞同!
dns2018 + 1 热心回复!
Aug6thSml + 1 + 1 谢谢@Thanks!
口恩彳亍 + 1 + 1 用心讨论,共获提升!
lylzy + 1 + 1 我很赞同!
Dolts + 1 + 1 热心回复!
chinadsy + 1 + 1 热心回复!
Mu-2019 + 1 + 1 热心回复!
z65689 + 1 + 1 谢谢@Thanks!
鹏0518 + 1 热心回复!
humbert1961 + 1 热心回复!
一点丶心动 + 1 + 1 用心讨论,共获提升!
zhongjiezhe + 1 + 1 谢谢@Thanks!
丿柒丨丶小宝 + 1 + 1 我很赞同!

查看全部评分

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

梦游枪手 发表于 2019-3-27 12:23
再贴一个第三题的吧
[Python] 纯文本查看 复制代码
if __name__=='__main__':
    print "first step key:"
    step1=2019002
    while step1<2019999:
        tmp=step1-2019000
        truenum=0
        while tmp!=0:
            tmp2=tmp%10
            tmp/=10
            truenum+=pow(tmp2,3)
        if truenum==step1-2019000:
            print step1
        step1+=1
    
    print "second step key:"
    for step2 in range(20191,20200):
        if  step2&1==0:
            print step2
    string2="T\P^IcTZ"
    xorkey="2019"
    s=""
    print "1.txt"
    for i in range(0,8):
        s+=chr(ord(string2[i])^ord(xorkey[i%4]))
    print s+"-"+xorkey
    
    print "third step key:"
    step3=100000
    num=[1,-2,1,0,2,-8,-4,5,9]
    result=[2,2,-1]
    while step3<=999999:
        calc1=step3+10*(step3/10%10-step3/10)
        calc2=step3/100%10+10*(step3/1000%10)
        calc3=step3/10000%10+10*(step3/100000%10)
        cur=0
        for i in range(1,9,3):
            tmp=calc1*num[i+1]+calc2*num[i]+calc3*num[i-1]
            if tmp==result[cur]:
                cur+=1
            else:
                break
        if cur==3:
            print step3
        step3+=1


校验流程有三步,第一步检测输入的整数后三位是不是水仙花数,第二步检测输入的数是否是[20191,20199]之间的偶数,再对1.txt的内容做异或并base64,比较是否等于VFxQXkljVFo=,第三步看python代码吧。
有个很奇怪的的地方就是,第一步检测完以后会修改main.dll,而且后续没有修改回去,也可能是我没发现。请其他大佬指点一下吧

把main.dll还原以后输出如下

我也不知道flag是不是正确的。

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Eorton + 1 + 1 用心讨论,共获提升!

查看全部评分

梦游枪手 发表于 2019-3-29 23:01
今天抽空把第二题也做出来了,不过python有精度的问题,生成的注册码我也不保证一定正确,随机测试了几组没啥问题,不想用C重写一次了。。。
使用前python要安装opencv库,并将py文件放在第二题的目录执行
[Python] 纯文本查看 复制代码
import re
import cv2
import numpy as np
import hashlib
import hmac

def hmacsha256(key,message):
    return hmac.new(key, message, digestmod=hashlib.sha256).hexdigest()
def codeappend(code):
    s="".join(code)
    fxorl1=(ord(code[0][0])^ord(code[-1][0]))<<8
    fmull2=(ord(code[0][1])*ord(code[-1][1]))+fxorl1
    fdivl3=(ord(code[0][2])/ord(code[-1][2]))+fmull2
    fmodl3=(ord(code[0][2])%ord(code[-1][2]))+fdivl3
    smuls1=(ord(code[1][0])*ord(code[-2][0]))<<8
    sxors2=(ord(code[1][1])^ord(code[-2][1]))+smuls1
    smods3=(ord(code[1][2])%ord(code[-2][2]))+sxors2+32
    sdivs3=(ord(code[1][2])/ord(code[-2][2]))+smods3
    fmod2=(ord(code[0][1])%ord(code[0][-1]))<<8
    sdiv2=(ord(code[1][1])/ord(code[1][-1]))+fmod2
    tmul2=(ord(code[2][1])*ord(code[2][-1]))+sdiv2+8
    foxor2=(ord(code[3][1])^ord(code[3][-1]))+tmul2
    fxorl14=(ord(code[0][0])^ord(code[-1][-1]))<<8
    sdivt23=(ord(code[1][1])/ord(code[2][2]))+fxorl14
    smult23=(ord(code[1][1])*ord(code[2][2]))+sdivt23
    fmodl14=(ord(code[-1][-1])%ord(code[0][0]))+smult23
    ret1=str(sdivs3*30+(foxor2*2+fmodl3)*20+fmodl14*72)
    ret2=str(23*fmodl3+ 32*sdivs3+42*foxor2+54*fmodl14)
    ret3=(25*sdivs3 + 38*foxor2 + 67*fmodl14+fmodl3*18)%20
    ret4=(45*sdivs3 + 33*fmodl14 + foxor2*64+fmodl3*12)%20
    if ret3>ret4:
        ret3,ret4=ret4,ret3
    ret5=0
    for i in s:
        ret5+=int(i)
    s+=ret1+ret2+str(ret3)+str(ret4)+str(ret5)
##    print s
    return s
def genbin(codesum):
    img = cv2.imread('./flag.jpg')
    rows,cols = img.shape[:2]
    M = cv2.getRotationMatrix2D((float(cols)/2,float(rows)/2),codesum,1)
    dst = cv2.warpAffine(img,M,(cols,rows))
    gray = cv2.cvtColor(dst,cv2.COLOR_BGR2GRAY)
    gray = np.float64(gray)
    res = cv2.resize(gray,(8, 8),fx=0, fy=0, interpolation = cv2.INTER_LINEAR)
    r=cv2.dct(res)
    result=0.0
    s=""
    for i in r:
        for k in i:
           result+=k*0.015625
##    print result
    for i in r:
        for k in i:
            if k<result:
                s+="0"
            else:
                s+="1"
##    print s
    return s
def fullmatch(regex, string, flags=0):
    """Emulate python-3.4 re.fullmatch()."""
    return re.match("(?:" + regex + r")\Z", string, flags=flags)
if __name__=='__main__':
    name=raw_input()
    if fullmatch("(\d{4})-(\d{4})-(\d{4})-(\d{4})",name)!=None and re.search("0000",name)==None:
        code=name.split('-')
        truename=codeappend(code)
        bins=genbin(int(truename[-2:]))
        truename+=bins
        print hmacsha256(bins, truename)
    else:
        print "invaild name"
        


相比第一题,第二题只是在用户名末尾再增加了一串字符串,还有hmac的key变为增加的字符串,其他地方基本一样,具体算法看python代码吧

本帖子中包含更多资源

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

x
 楼主| Eorton 发表于 2019-3-23 20:59
LjeA 发表于 2019-3-23 19:59
先看看了,题目都看不懂,这是逆向吗?

对啊,这就是逆向
 楼主| Eorton 发表于 2019-3-23 23:29
zhongjiezhe 发表于 2019-3-23 23:09
我想报个名都报不了,别说做题啦啊

哈哈那您现在做题试试
 楼主| Eorton 发表于 2019-3-24 14:06

大神!大神,麻烦您分享一下思路让我们学习学习
byxiaoxie 发表于 2019-3-24 20:59
第一题就让写注册机了,菜鸟的我表示劝退成功
whyida 发表于 2019-3-24 22:07
本帖最后由 whyida 于 2019-3-24 22:10 编辑

第一题 AES ,RSA ,SHA256,SHA1,MD5,MD4 .考加密算法。不会编程,只能被劝退。
 楼主| Eorton 发表于 2019-3-25 13:00
whyida 发表于 2019-3-24 22:07
第一题 AES ,RSA ,SHA256,SHA1,MD5,MD4 .考加密算法。不会编程,只能被劝退。

Python有这么难吗
口恩彳亍 发表于 2019-3-25 13:07
过路小白围观一下
whyida 发表于 2019-3-25 14:19
Eorton 发表于 2019-3-25 13:00
Python有这么难吗

python2.7 可以。
whyida 发表于 2019-3-25 14:22
大概格式是这样。

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 21:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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