IDA打开整体先看看。
学个函数:
strcpy:即字符串复制
v8=这么一大串字符串
我们让程序调到sub_4007F0(),就OK。
我们使用python来写,
主要迷惑的还是下面都是情深深雨蒙蒙的存在:(char)(*((_BYTE *)&v7 + i % v6) 和chr(ord(a[i%v6])
v6=7是因为右击decimal看小数(char)(*((_BYTE *)&v7 + i % v6) ^ v8[i])
chr(ord(a[i%v6]) ^ ord(b[i]))
网上也搜了:
&除了是一个位运算符,也是取地址符。
_BYTE *强制转换为BYTE类型的指针值。
chr
ord却是返回值是对应的十进制整数。
算了这个一时半刻还理不清楚。后待补充吧.....
运行后
解释:伪指令db、dw、dd、dq都可以定义字符串,但最多的是用db来定义字符串,第一个原因是dw、dd定义的字符串到了内存中排序是相反的
替换:
这个样子就出来了~