逆向入门笔记
第一题:
是要提交hello的注册码
首先想到的是用IDA打开,使用Graphic View大致查看程序逻辑。
看到jnz指令,向上找到了call sub——4011D0函数,查看这个函数
于是找到了我们需要查看的
do
{
*(&String2 + v1) = (v1 + v1 * String[v1] * String[v1]) % 0x42 + 33;
++v1;
}
while ( v1 < strlen(String) );
我们根据这个写出如下python代码。
data = "hello"
ans = list()
for i in range(len(data)):
ans.append(chr((i+i*ord(data[i])**2)%0x42+33));
print("Happy@"+"".join(ans))
好了,得到flag。很简单啊哈哈。