阳光肥肥 发表于 2020-8-13 13:24

Python写的CrackMe,或许很简单?

python写的源代码,用两种方式打包成了exe
下载压缩包后分别解压,找到其中的test.exe即可运行
程序很简单输入错误name则出现wrong输入正确出现right
希望能找到正确name或者绕过限制
程序是64位的
第一种用的是nuitka+mingw64打包,第二种用的cxfreeze打包(虽然感觉跟破解他没什么用)
目前应该没有什么能从exe反编译到py文件
直接打包分别由20M和10M以上。。。压缩以后还不小 只能通过度盘分享

链接:https://pan.baidu.com/s/1s2cGAXKisyMvSTT4rPO2aw
提取码:xx3n

solly 发表于 2020-8-14 12:37

见下图数据区,ebx 指向正确字符串结构:

就是 ppx:

solly 发表于 2020-8-15 17:52

本帖最后由 solly 于 2020-8-15 18:05 编辑

iWorm 发表于 2020-8-15 15:24
这个没看懂,怎么解析出正确答案是ppx。
rbx?
rbx 是指向一个字符串对象的结构:
struct string {
qwordrefer_count,            /// 引用计数
qwordptrUnknow1,
qwordlength,                   /// 长度
qwordreserved1,
qwordptrUnknow2,
qwordreserved2,
union {
       char   buffer;                     /// 字符串内容
       qword ptrString;                     /// 如果字符串内容超过15字符,就是存的指针了
}
}
共 0x40 字节。如果字符串内容超过15字符,buffer[] 处存的是字符串的指针。

梦回吾爱 发表于 2020-8-13 23:14

支持楼主

很默契啊 发表于 2020-8-14 07:55

迈克尔詹姆斯 发表于 2020-8-14 09:00

ctcyh001 发表于 2020-8-14 10:12

xx3nxx3nxx3nxx3nxx3n

00zy200042 发表于 2020-8-14 10:23

# uncompyle6 version 3.6.4
# Python bytecode 3.8 (3413)
# Decompiled from: Python 3.6.9 (default, Apr 18 2020, 01:56:04)
#
# Embedded file name: C:\Users\王涛\Desktop\test.py
# Size of source mod 2**32: 224 bytes
from os import system
username = 'ppx'
while True:
    in_username = input('please input the name:')
    if in_username == username:
      print('right')
      system('pause')
      break
    else:
      print('wrong')



uncompyle6 了解一下

初吻给奶嘴耶 发表于 2020-8-14 11:05

cxfreeze 可以直接反编译library.zip里面的pyc

阳光肥肥 发表于 2020-8-14 12:12

初吻给奶嘴耶 发表于 2020-8-14 11:05
cxfreeze 可以直接反编译library.zip里面的pyc

{:1_927:} nuitka有办法吗 都是pyd

哒劳德 发表于 2020-8-14 12:44

分析的很全面,学到一些了,大佬
页: [1] 2 3
查看完整版本: Python写的CrackMe,或许很简单?