[re入门]一个简单的加密程序的逆向破解与解密

简介: [re入门]一个简单的加密程序的逆向破解与解密

如下的代码进行了一个简单的加密过程

#include<stdio.h>
#include<string.h>
int main()
{
  int i;
  int len;
  char key[20];
  char res[20];
  char *num = "eastmount";     //密钥 
  char *right = "123456789";   //正确值 
  //请输入正确的密码
  printf("please input the key:");
  scanf("%s", &key);
  //判断
  len = strlen(key);
  if(len<6 || len>10) {
    printf("Error, The length of the key is 6~10\n");
  } 
  else {
    //加密
    for(i=0; i<len; i++) {
      res[i] = (key[i]^num[i]); //异或加密 
    }  
    //printf("%s\n", res);
    if(strcmp(res, right)==0) {
      printf("You are right, Success.\n");
    } else {
      printf("Error, please input the right key.\n");
    }
  }
  return 0;
}

IDA反汇编后得到代码如下

1.png

分析一下这个代码的意思,就是说定义了两个数组str1[]和str[],以及两个变量,v6和i,程序开始运行时首先需要输入密钥赋值给str[],讲str【】的长度赋值给v6,如果v6的长度在6-10之间继续下去,不是的话报错,将gcc2_compiled_【i】和str【i】异或的结果赋值给str1[i],如果这个结果是123456789,那么登录成功。

所以我们要搞清楚这个gcc2_compiled_的值,如下图,值为:eastmount


image.png


现在整理一下思路,就是a^b=c 已知a和c,求b。这个时候需要写一下脚本。

#include<stdio.h>
 int main(){
  char a[] = "eastmountl";
  char c[] = "123456789";
  int i = 0;
  char b[9];
  for(i = 0;i < 9;i++){
   b[i] = (a[i]^c[i]);
  }
     b[i] = 0;
  printf("the key:%s",b);
  return 0;
 }

得到结果

image.png

我们验证一下

image.png

那么这样一个简单的解密就完成了,希望大家可以有所收获哦!

相关文章
|
3月前
|
算法 安全 物联网
全面了解AES加密:入门指南(二)
全面了解AES加密:入门指南
|
5月前
|
开发框架 网络协议 前端开发
一个对C#程序混淆加密,小巧但够用的小工具
一个对C#程序混淆加密,小巧但够用的小工具
86 1
|
2月前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
47 0
|
3月前
|
存储 安全 算法
全面了解AES加密:入门指南(一)
全面了解AES加密:入门指南
|
3月前
|
数据安全/隐私保护 Python
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
34 1
|
3月前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(上)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
54 0
|
9月前
|
安全 搜索推荐 数据安全/隐私保护
Python基础之破解加密压缩包
Python基础之破解加密压缩包
171 0
|
8月前
|
存储 API 数据库
c# 如何将程序加密隐藏?
c# 如何将程序加密隐藏?
85 0
c# 如何将程序加密隐藏?
|
8月前
|
JavaScript 数据安全/隐私保护 开发者
JS逆向实战之混淆加密和AES加密的破解
JS逆向实战之混淆加密和AES加密的破解
|
8月前
|
Java 数据安全/隐私保护 Android开发
app逆向实战强化篇——破解某安卓APP请求加密参数
app逆向实战强化篇——破解某安卓APP请求加密参数