(Jarvis Oj)(Re) 软件密码破解1

(Jarvis Oj)(Re) 软件密码破解1

首先放到ida中,反汇编出上千个函数,感觉无从下手。于是用od动态调试。先搜索一波字符串。这里写图片描述
发现“你赢了!”然后找到相关汇编代码。
这里写图片描述
找到关键跳转
这里写图片描述
0x12E1C69地址开始,将ebx中地址的数据和14个字节的数据进行比较。那么ebx中的数据是什么?往上看到一个循环异或操作。eax中的数据就是输入的数据,每次都将一个字节与dl进行异或。那么dl的数据又是什么?ecx+eax=0x14577F8,在内存中找到该地址。
这里写图片描述

  1 #include<stdio.h>                                                                                                  
  2 int main(void){
  3 int cipher[14]={0x1b,0x1c,0x17,0x46,0xf4,0xfd,0x20,0x30,0xb7,0x0c,0x8e,0x7e,0x78,0xde};
  4 int key[18]={0x28,0x57,0x64,0x6B,0x93,0x8F,0x65,0x51,0xE3,0x53,0xE4,0x4E,0x1A,0xFF};
  5 for(int i=0;i<14;i++)
  6     printf("%c",cipher[i]^key[i]);
  7 return 0;
  8 }

猜你喜欢

转载自blog.csdn.net/github_36788573/article/details/79782343