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

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

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

  1 #include                                                                                                  
  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 }

你可能感兴趣的:(re)