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 )

好啦,收工!!

原文地址:https://www.cnblogs.com/zhaijiahui/p/7683599.html