吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7100|回复: 20
收起左侧

[ReverseMe] python写的一个简单的ctf

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

本帖最后由 wmsuper 于 2018-12-1 12:19 编辑

flag以“@52pojie.cn"结尾。题目来源于某个ctf,稍微改了一下,最先做出来有500CB的奖励,希望大家喜欢。
enjoy it

链接:https://pan.baidu.com/s/1qClRQhH4pNSHc7YrjbNnwQ

免费评分

参与人数 4吾爱币 +3 热心值 +4 收起 理由
fch + 1 我很赞同!
借你3亿精兵如何 + 1 + 1 热心回复!
洋洋吖 + 1 + 1 热心回复!
NSNSDHS + 1 + 1 我很赞同!

查看全部评分

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

onmiuncai 发表于 2018-12-1 14:38
不懂python,没法愉快的玩耍了 看来是。
lvcaolhx 发表于 2018-12-1 14:40
import struct
import sys
import base64
import zlib
code = []
pc = 0

def exec_instruction(a, b, c):
    global code
    code[b] -= code[a]
    code[b] &= 4294967295L
    ret = False
    if code[b] & 2147483648L != 0 or code[b] == 0:
        ret = True
    if c != 0:
        return ret
    else:
        return False


def exec_vm(entry, size):
    global pc
    pc = entry
    while pc + 3 <= size:
        if exec_instruction(code[pc], code[pc + 1], code[pc + 2]):
            if code[pc + 2] == -1:
                return
            pc = code[pc + 2]
        else:
            pc += 3
        if code[4] == 1:
            sys.stdout.write(chr(code[2]))
            code[4] = 0
            code[2] = 0
        if code[3] == 1:
            c = sys.stdin.read(1)
            code[1] = ord(c)
            code[3] = 0


def main():
    code_base64 = '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'
    bin_code = zlib.decompress(base64.b64decode(code_base64))
    for i in range(0, len(bin_code), 4):
        code.append(struct.unpack('I', bin_code[i:i + 4])[0])

    back_code = code
    exec_vm(1123, len(code))


if __name__ == '__main__':
    main()
源代码,flag弄不出来,水平有限
NSNSDHS 发表于 2018-12-1 14:29
 楼主| wmsuper 发表于 2018-12-1 14:56
onmiuncai 发表于 2018-12-1 14:38
不懂python,没法愉快的玩耍了 看来是。

c版的,密钥和算法一样的,希望大佬玩得开心:https://pan.baidu.com/s/1efeTLJ_ME-0bSMdTAlJ-ug
充电室 发表于 2018-12-1 16:13
呃,刚学会hello Word
guidao 发表于 2018-12-2 00:39
lvcaolhx 发表于 2018-12-1 14:40
import struct
import sys
import base64

老哥,这源码咋弄得啊?,我照网上先转pyc,结果转了一大堆,也不知道是哪个
lvcaolhx 发表于 2018-12-2 09:01
guidao 发表于 2018-12-2 00:39
老哥,这源码咋弄得啊?,我照网上先转pyc,结果转了一大堆,也不知道是哪个

用pyinstxtractor.py生成py4py.exe_extracted文件夹,里面有py4py没后缀名的这个
一个人的ye 发表于 2018-12-2 11:42
这个零基础怎么学,难不难啊
woaijiajia 发表于 2018-12-2 11:57
不错不错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 15:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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