回归老本行,继续破解
载入od,字符串查找,一下找到了关键,进入
这里只有一个call,只能是它了。
跟进去,用ida查看
有一个a1和v5,
v5是参数,a1是临时变量,很显然v5就是我们输入的假码而a1就是真正未加密的注册码了
打开od跟踪看ida里第一个跳转
不难找到a1就在下面堆栈处的19f754开始0xe个字节
不让这个跳转跳,继续分析
下面第一个循环ida写的很清楚,加密假码,第二个循环加密真码。
这里是加密完成的注册码
吧这个注释区里的值和0x20 xor就是了 O(∩_∩)O
int main()
{
char strT[0xe]={0x68,0x57,0x19,0x48,0x50,0x6e,0x58,0x78,0x54,0x6a,0x19,0x58,0x5e,0x06};
int v2=0;
do
(*strT+v2++)-=5;
(*strT+v2++)^=0X20;
cout<<*strT;
while(v2
破解,实验吧之证明自己吧
最新推荐文章于 2022-03-28 16:47:03 发布