1.程序是pyinstaller打包,还原主文件。2.可以发现打包程序并无CrackMe的库。如此可推测,在import时动了手脚。对base_library.zip中的文件进行搜索,寻找_find_and_load_unlocked相关调用。可以发现,在codes.pyc中出现此调用。该文件是不应该出现这个调用的。还原此pyc代码,可发现以下代码:3.当import的库名称是CrackMe时,就加载base64库。并且把不需要的属性均去除,只留下main属性。找到base64对应的pyc,进行还原。可发现以下代码:4.这里是手动制作一个code类型,可通过dis对此code进行反编译。或输出为pyc文件再进行反编译。得到一个自定义的base64编码函数。5.随后根据这个函数,写出一个解码函数来。6.随后对main.py中dZpK字符串进行解码。发现解码后的数据为乱码。并且input输入的数据和得到的结果不一致。7.根据论坛地址:https://bbs.kanxue.com/thread-276493.htm,所提及的方式,可找到input所hook的函数地址。是一段shellcode,反汇编其算法。是一个简单亦或算法。8.综合一下,即可算出验证码。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
Zero*/ 师傅,我想请问一下,codecs.py是frozen模块,按理来说修改codecs.py的源码是不会被加载执行的,我试了手动编译codecs.pyc然后替换python目录下的codecs.pyc,依 ...