CrackME 2011 # 2 逆向练习解题思路
CrackME 2011 # 2 逆向练习解题思路
做题背景:
从朋友那里得到一道逆向题名字叫package,作为小菜的我当然要看一看啦,这名字辨识度太低我就按照运行的名字改成CrackME 2011 # 2。
题目链接:
CrackME 2011 # 2.zip (请到网盘里去找同名文件)
具体步骤:
首先这个程序没壳的
直接放到IDA里看一下,找到了存在加密算法的函数sub_4011D0
判断输入字符串的长度如果不为0,把输入字符串每一位进行x + x * string[x] * string[x] % 66 + 33的运算将得到一段字符串。在与前面Happy@合并,最终求得答案。
最后附上解题代码
string = "hello" key = '' for x in range(5): a = int(ord(string[x])) # print a result = x + x * a * a % 66 + 33 key = key+ chr(result) print('Happy@'+ key )
好啦,收工!!
知识要大家一起分享,但带上原文链接是对作者的尊重。