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.综合一下,即可算出验证码。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
Zero*/ 师傅,我想请问一下,codecs.py是frozen模块,按理来说修改codecs.py的源码是不会被加载执行的,我试了手动编译codecs.pyc然后替换python目录下的codecs.pyc,依 ...