吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[CrackMe] python,无壳,简单版,来试试吧

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

本帖最后由 papersheep 于 2023-1-10 08:34 编辑

压缩包有32位和64位的CM
验证失败

验证成功

链接:https://pan.baidu.com/s/1tnc1-I6sXkTEQQyxjeUN4w
提取码:xlkl

加一个py转c后编译的版本(这个不是pyinstaller打包的)
链接:https://pan.baidu.com/s/1G75RiVBCKY0pJTdDhYj3wA
提取码:mysa

本帖子中包含更多资源

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

x

免费评分

参与人数 4吾爱币 +13 热心值 +4 收起 理由
elevo + 1 + 1 谢谢@Thanks!
局外人K + 1 + 1 我很赞同!
461735945 + 1 + 1 谢谢@Thanks!
涛之雨 + 10 + 1 用心讨论,共获提升!

查看全部评分

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

 楼主| papersheep 发表于 2023-1-10 19:54
liyitong 发表于 2023-1-10 13:49
你是怎么把源代码给弄出来的

这种逆出源码的只能针对pyinstaller打包的python代码。具体流程是这样的
1. 安装python环境
2.到github或者百度上下载pyinstxtractor.py
3.在CM所在目录的命令行运行:python pyinstxtractor.py CM.exe
4.第三步运行后会得到xxx.exe_extracted的目录文件
5.进入xxx.exe_extracted,找出被加密的python源码,你会发现一个文件后缀是xxx.exe.manifest,这个xxx就是源码文件名,那么被加密的源码就是"xxx.exe_extracted/xxx",这个被加密的源码文件没有任何后缀
6.找到被加密的源码文件后,加上.pyc后缀给它
7.要破解这个加密源码文件你需要找到magic num,这个密钥长4个字节,不同版本的python对应的magic num是固定的,你现在有两种方法找到这个magic num,一种是网上写好的对照表,你在xxx.exe_extracted目录下看一下pythonxx.dll就知道这个软件是python多少版本打包的了,你知道版本后网上直接找出对应的magic num。第二种方法是xxx.exe_extracted目录下有一个struct文件,它的前4位字节就是magic num。(我自己破解的时候我就是取这个struct的前4位字节)
8.取到magic num后,就可以构建破解密钥了,目前有两种情况,第一种情况是这个软件是(python3.7以下,不包括3.7),那么你构建出来的破解密钥就是(4个字节的magic num + 4个字节的时间戳),这个时间戳可以全是0。如果软件是(python3.7以上,包括3.7),那么破解密钥就是(4个字节的magic num + 4个字节的空白数据 + 4个字节的时间戳 + 4个字节的文件长度),除了magic num,其他数据可以全是0。
9. 以这个软件为例,这个软件在被pyinstxtractor.py解析后可以看出python38.dll,所以这个软件是python3.8版本的,那么我把 "xxx.exe_extracted/xxx.pyc"放入编辑二进制文件的软件里(我用的是吾爱论坛提供的C32Asm),然后我把第8步得出的密钥插入文件头,也就是在文件最前面插入这个破解密钥,最后保存
10.到此源码的pyc就处理后了,下一步就是在自己的python环境使用Pip安装uncompyle6,安装命令:pip install uncompyle6
11. 然后进入源码.pyc所在的目录在命令行运行:uncompyle6 -o new.py 源码.pyc,那么你得出的new.py就是软件源码,不过这个源码会有一点点瑕疵。
12. 这个方法只适用于pyinstaller打包的python文件,我后续上传的那个CM是使用nuitka打包,这个就不适用这个方法了。

免费评分

参与人数 1热心值 +1 收起 理由
liyitong + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

xqyqx 发表于 2023-1-10 08:26
username:paper
password:sheep
建议下次用Cython编译成二进制或者简单混淆一下代码

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
import tkinter as tk
import tkinter.messagebox as tkinter
 
 
def login_func(e_usename, e_password, root_win):
    usename = e_usename.get()
    password = e_password.get()
    if usename == "paper" and password == "sheep":
        root_win.update()
        root_win.deiconify()
    else:
        tkinter.messagebox.showerror(
            "账号密码错误",
            "购买账号:[url]www.xxx.com[/url]",
            **("title", "message")
        )
 
 
def close_top1(top1, root_win):
    top1.destroy()
    root_win.destroy()
 
 
def main():
    root_win = tk.Tk()
    root_win.title("tkcm1")
    root_win.geometry("450x300")
    tk.Button(
        root_win,
        "已开启主要功能",
        **("text",)
    ).pack()
    root_win.withdraw()
    root_win.update()
    top1 = tk.Toplevel(root_win)
    top1.title("登录窗口")
    top1.geometry("300x100")
    None(None, (lambda: close_top1(top1, root_win)))
    l_usename = tk.Label(top1, "账号:", **("text",))
    l_password = tk.Label(top1, "密码:", **("text",))
    e_usename = tk.Entry(top1)
    e_password = tk.Entry(top1)
    l_usename.grid(0, **("row",))
    l_password.grid(1, **("row",))
    e_usename.grid(0, 1, **("row", "column"))
    e_password.grid(1, 1, **("row", "column"))
    b_login = None(
        None,
        None,
        (lambda: login_func(e_usename, e_password, root_win)),
        **("text", "command")
    )
    b_login.grid(2, **("row",))
    root_win.mainloop()
 
 
if __name__ == "__main__":
    main()

免费评分

参与人数 1吾爱币 +4 热心值 +1 收起 理由
涛之雨 + 4 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

aa2923821a 发表于 2023-1-10 08:39
感谢分享 !!!谢谢

免费评分

参与人数 1违规 +1 收起 理由
Hmily + 1 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

 楼主| papersheep 发表于 2023-1-10 08:40
xqyqx 发表于 2023-1-10 08:26
username:paper
password:sheep
建议下次用Cython编译成二进制或者简单混淆一下代码

对对,如果使用pyinstaller打包的话一下子就可以逆回源码了,我换了一种打包方式后,我自己初学破解感觉,愣了半天也没找到思路,我用OD断点API没反应,搜索关键词字符串也没找到
链接:https://pan.baidu.com/s/1G75RiVBCKY0pJTdDhYj3wA
提取码:mysa
ycx151771 发表于 2023-1-10 08:44

感谢分享 !!!谢谢

免费评分

参与人数 1违规 +1 收起 理由
Hmily + 1 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

stone0505 发表于 2023-1-10 09:52
学习一下

免费评分

参与人数 1违规 +1 收起 理由
Hmily + 1 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

lyisme 发表于 2023-1-10 10:16
这个东西有点意思

免费评分

参与人数 1违规 +1 收起 理由
Hmily + 1 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

liangxinbeilang 发表于 2023-1-10 10:36
楼主加油

免费评分

参与人数 1违规 +1 收起 理由
Hmily + 1 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

查看全部评分

头像被屏蔽
sh101848 发表于 2023-1-10 11:13
提示: 该帖被管理员或版主屏蔽
sk2006 发表于 2023-1-10 11:36
需要什么工具?网上下的 很多用不多=了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-5-25 14:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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