看到昨天大佬的一个帖子,决定跟风一发顺便推销一波我们的py加密技术。
附件压缩包内为一个pyc文件,正确的输入内容即为一个对应0xd0fe5288c5320bb898498fa45fa4f7c324e1e074该以太坊地址的私钥,地址内余额5ETH(当前价值12300元)可以在此链接查看该地址余额(如果在结束时间之前被转走说明有大佬完成了游戏)
https://etherscan.io/address/0xd0fe5288c5320bb898498fa45fa4f7c324e1e074
-----------------------------------------------------
网友回复:
cc8d0a76d0ba8cab2a146c26a9b8a91e45edb5785a7d15114cf835e3c8ca9444
网友回复:
writeup:https://gist.github.com/gugutt/33e21d3b106bf1f89a7275700b5bcad5
网友回复:
这种破解,只需一块板砖
来,楼主你报下坐标
我看离的近不
网友回复:
大佬牛逼!!!
网友回复:
会玩,商业加密这个破起来怕是不简单
虽然我逆向一点也不会
网友回复:
pyc加密有啥用呢。。。直接pyinstaller二进制不好吗
网友回复:
越来越扯了,我重编译一个python,然后修改python生成的pyc编码格式,你让我反猜??没搞错吧
网友回复:
引用:nny发表于2020-9-1112:57
越来越扯了,我重编译一个python,然后修改python生成的pyc编码格式,你让我反猜??没搞错吧...
网友回复:
正确的输入内容即为一个对应0xd0fe5288c5320bb898498fa45fa4f7c324e1e074该以太坊地址的私钥
这不和BIP39是一样的东西
正确输入内容(12个范围内的单词)即获得私钥
这种还用解密么?你要不然先证明,私钥和输入的内容没有关系?
你要真想证明什么PYC加密的解密不了,还不如做个crackme发到吾爱一类的地方
网友回复:
引用:jq8778发表于2020-9-1113:31
正确的输入内容即为一个对应0xd0fe5288c5320bb898498fa45fa4f7c324e1e074该以太坊地址的私钥
这不和BIP39...
网友回复:
引用:西行寺幽幽子发表于2020-9-1113:32
不是助记词,是64位字母数字组合的传统私钥
网友回复:
引用:jq8778发表于2020-9-1113:36
你需要先证明,私钥和输入内容没有关系啊
网友回复:
PyProtect2.0
https://pyprotect.angelic47.com
应该是用了作者自创的AVM虚拟机
放弃了,等一个带手子来逆
网友回复:
引用:nekolate发表于2020-9-1114:03
PyProtect2.0
https://pyprotect.angelic47.com/
网友回复:
好像挺好玩的,不过我丢了个PY3.7的加密一下好像运行不了是不支持3.x吗
RuntimeError:Badmagicnumberin.pycfile
网友回复:
引用:nisekoi发表于2020-9-1115:02
好像挺好玩的,不过我丢了个PY3.7的加密一下好像运行不了是不支持3.x吗
RuntimeError:Badmagicnumb...
网友回复:
如果想拿赏金,需要跟踪分析,甚至逆向他的虚拟机壳,还要找指令替换表,绕过花指令之类的限制。
手工拿确实比较麻烦,但是丢到看雪,应该还是有人做过这件事情的,大胆推测一下,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,使用pythonapi/c直接操作python的内存,绕过python对象的数据访问限制。
在逆向分析人员面前不存在无法破解的保护,只有时间成本问题。
end
网友回复:
引用:bagheera发表于2020-9-1115:43
如果想拿赏金,需要跟踪分析,甚至逆向他的虚拟机壳,还要找指令替换表,绕过花指令之类的限制。
手工拿确...
网友回复:
引用:nekolate发表于2020-9-1114:03
PyProtect2.0
https://pyprotect.angelic47.com
网友回复:
商业加密吃饭的东西12300应该不是很多,专业的可能要更多
网友回复:
这种破解,只需一块板砖
来,楼主你报下坐标
我看离的近不
网友回复:
AVMbyAngelic47:Runtimeerror:unknownopcodes
AVMbyAngelic47(>
marshalt
syst
typest
hashlibt
_getframet
f_localst
f_globalst
strt
typet
ordt
SystemErrort
joint
chrt
hasattrt
__import__t
getattrt
f_codet
co_codet
lent
md5t
co_constst
startswitht
co_namest
co_varnamest
co_filenamet
co_namet
updatet
hexdigestt
decodet
splitt
ranget
loadst
RuntimeErrort
Falset
Nonet
f_backt
findt
Truet
get_referrersR
has_keyt
TypeErrort
localst
popt
appendt
itert
isinstancet
Exceptiont
insertR
co_argcountt
nextt
StopIterationt
listt
globalst
__builtins__t
dictt
NameErrort
slicet
exc_infot
message(9
notraiset
elifglobalfinallyfromR
classelse -6elset
import--isglobalt
with^raiset
lambdareturn*t$
classfinallyassertbreakcontinuet
=keyandreturn -6t
for||/t
lambdaist
print--lambdaor++t
elif||iforclasst
--printprint+8&&t
tryinifort
passbreakt
-6returnt
--finallyist
inis* -6t
delcontinuet
finallyraisebreakint
||elifor++importt
&&iftryt
break&&t
/*&&t
tryfrom^t
importreturn&&*classt
raiseandorimportglobalt
withfor^t
+dictreturn&&isdecodedt
/globaldef--t
&&*anddeft
++ifyielddefdelt
while^is&&globalt
lambdatry*t
continueisimportt
breakand--class&&t
break++t
ifimportisexceptreturnt
breaklambdaornott
withas -6lambdat
&&&&anddelt
import+dict=key||t
isimportint
isdefbreakelift
returnclasst
assert++passelifwhilet
tryraiseint
whiledelt
^classtrywhileort
as=keyyield&&t
globalraiseraise -6assertt
deffinallypass(
pyprotect.angelic47.comt
ProtectedCode
网友回复:
引用:h20发表于2020-9-1117:41
网友回复:
研究过破解pyd,使用cpython看过编译好的c代码,确实很麻烦。就是不知道pythonimport操作之后,是把整个函数解密之后放在内存里,还是用的时候解
网友回复:
引用:她教我打狙发表于2020-9-1118:43
上一个发布解密的,已经被石锤了。
网友回复:
很有可能最终还是个用公钥猜私钥的无解问题,只要其中任何一步的验证使用了非对称加密或者散列的话,就不可能被找到私钥
网友回复:
引用:cpn发表于2020-9-1119:08
很有可能最终还是个用公钥猜私钥的无解问题,只要其中任何一步的验证使用了非对称加密或者散列的话,就不可...
网友回复:
引用:西行寺幽幽子发表于2020-9-1113:50
有关系正确的输入内容就是私钥,但该输入内容是能通过里面的逻辑逆向出来的...
网友回复:
引用:西行寺幽幽子发表于2020-9-1119:16
我已经注明了,在拥有源码的情况下,足够反推出正确答案,绝对不是无解问题。
时限到达之后仍未有人解出...
网友回复:
引用:jq8778发表于2020-9-1119:46
所以这样是没有意义的啊
比如我过两轮SHA256,任意内容也可以生成私钥啊,和脑钱包一样嘛
你说私钥可以通...
网友回复:
cc8d0a76d0ba8cab2a146c26a9b8a91e45edb5785a7d15114cf835e3c8ca9444
网友回复:
引用:gugugu发表于2020-9-1206:03
cc8d0a76d0ba8cab2a146c26a9b8a91e45edb5785a7d15114cf835e3c8ca9444
网友回复:
引用:gugugu发表于2020-9-1206:03
cc8d0a76d0ba8cab2a146c26a9b8a91e45edb5785a7d15114cf835e3c8ca9444
网友回复:
引用:gugugu发表于2020-9-1206:03
cc8d0a76d0ba8cab2a146c26a9b8a91e45edb5785a7d15114cf835e3c8ca9444
网友回复:
writeup:https://gist.github.com/gugutt/33e21d3b106bf1f89a7275700b5bcad5
网友回复:
引用:gugugu发表于2020-9-1220:25
writeup:https://gist.github.com/gugutt/33e21d3b106bf1f89a7275700b5bcad5
网友回复:
引用:gugugu发表于2020-9-1220:25
writeup:https://gist.github.com/gugutt/33e21d3b106bf1f89a7275700b5bcad5