逆向/解密一个pyc程序,赏金12000元

日期 : 2020-09-11 15:49:02作者 : 阿蛮

看到昨天大佬的一个帖子,决定跟风一发顺便推销一波我们的py加密技术。
附件压缩包内为一个pyc文件,正确的输入内容即为一个对应0xd0fe5288c5320bb898498fa45fa4f7c324e1e074该以太坊地址的私钥,地址内余额5ETH(当前价值12300元)可以在此链接查看该地址余额(如果在结束时间之前被转走说明有大佬完成了游戏)

  1. https://etherscan.io/address/0xd0fe5288c5320bb898498fa45fa4f7c324e1e074
复制代码


如果能逆向出该pyc中的主要逻辑,即可拼出对应该地址的正确私钥,可以通过钱包直接转走不需要额外发帖。
下载地址:https://wws.lanzous.com/i8X7Wgit39a
限时为72小时,截止北京时间2020年9月14日13:00如仍未有人获得则结束游戏。

注:该pyc对应python2.7版本,输入的私钥不包括0x开头,只需要后面的64位字符串

另:对该py加密技术有兴趣寻求商业合作可私信

///

如果想拿赏金,需要跟踪分析,甚至逆向他的虚拟机壳,还要找指令替换表,绕过花指令之类的限制。
手工拿确实比较麻烦,但是丢到看雪,应该还是有人做过这件事情的,大胆推测一下,24小时内,奖金会被转走(楼主不诈骗,确实含有正确私钥的前提下)。

下面只说一下解题思路。
python解释器可以正常运行此pyc,于是猜测:,
1,修改了python解释器,增加了对自定义指令的支持,这种自定义很可能也就只是操作码替换。
2,通过对比混淆和未混淆的pyc的code对象co_flags标志多了什么,而且是python官方未定义的标志,就可以认为这个标志是加密标识。
于是有三种直观的思路:
1,修改code对象的代码,将其co_code属性改为可写的,co_code其实被存储为一个字符串故该操作最为简单,但是需要修改python库代码,,比较麻烦
2,分析pyc的结构,直接写C代码读取pyc并定点解析被加密的代码,这需要了解pyc的数据结构,使用010editor可以很容易的学习到,但是由于co_consts元组里的元素大小不一需要根据元素类型针对性解析,比较麻烦。
3,使用python api/c直接操作python的内存,绕过python对象的数据访问限制。

在逆向分析人员面前不存在无法破解的保护,只有时间成本问题。

原贴: https://www.hostloc.com/thread-742529-4-1.html


标签 :