= =
同时爆破验证和签名
同时爆破验证和签名
#include <malloc.h>
#include <memory.h>
#include <stdio.h>
#include <string.h>
#include "encoder_md5.h"
#include "encoder_xor.h"
void main(int argc,char** argv) {
if (3==argc) {
FILE* file=fopen(argv[1],"r");
if (NULL!=file) {
fseek(file,0,SEEK_END);
unsigned long file_size=ftell(file);
fseek(file,0,SEEK_SET);
char* buffer=(char*)malloc(file_size+LENGTH_MD5);
if (NULL!=buffer) {
fread(buffer+LENGTH_MD5,1,file_size,file);
fclose(file);
char*
md5=calcu_md5(&buffer[LENGTH_MD5],file_size);
memcpy(buffer,md5,LENGTH_MD5);
encoder_xor((unsigned
char*)buffer,file_size+LENGTH_MD5,(unsigned char*)argv[2],strlen(argv[2]));
file=fopen(argv[1],"w+");
fwrite(buffer,1,file_size+LENGTH_MD5,file);
fclose(file);
free(buffer);
} else
printf("Alloc Memory ERROR!");
} else
printf("Open ERROR!");
}
}
</string.h></stdio.h></memory.h></malloc.h>
#include <malloc.h>
#include <memory.h>
#include <stdio.h>
#include <string.h>
#include "encoder_md5.h"
#include "encoder_xor.h"
void main(int argc,char** argv) {
if (3==argc) {
FILE* file=fopen(argv[1],"r");
if (NULL!=file) {
fseek(file,0,SEEK_END);
unsigned long file_size=ftell(file);
fseek(file,0,SEEK_SET);
char* buffer=(char*)malloc(file_size);
if (NULL!=buffer) {
fread(buffer,1,file_size,file);
fclose(file);
encoder_xor((unsigned
char*)buffer,file_size,(unsigned char*)argv[2],strlen(argv[2]));
char*
md5=calcu_md5(&buffer[LENGTH_MD5],file_size-LENGTH_MD5);
char
sorc_md5[LENGTH_MD5+1]={0};
char
dest_md5[LENGTH_MD5+1]={0};
memcpy(sorc_md5,buffer,LENGTH_MD5);
memcpy(dest_md5,md5,LENGTH_MD5);
if (!strcmp(sorc_md5,dest_md5))
{
file=fopen(argv[1],"w+");
fwrite(&buffer[LENGTH_MD5],1,file_size-LENGTH_MD5,file);
fclose(file);
} else
printf("ERROR
Password!");
free(buffer);
} else
printf("Alloc Memory
ERROR!");
} else
printf("Open ERROR!");
}
}</string.h></stdio.h></memory.h></malloc.h>
引用 smith:是这样的,在数据加密验证的时候Crack 了那个特定的判断就可以输入任意密码绕过验证,之前写过一个类Winrar 的程序,过了很久自己把关键的判断给破解就可以绕过密码的输入验证..
破解程序和破解数据加密的场景搞混了吧。
破解程序如破解正版软件,改跳转指令确实是常用的方法。这个时候攻击的目标是程序自身
但楼主的程序是数据加密的场景,如解压一个winrar压缩包,要提供密钥才能解压。这个时候攻击的是加密的算法和密钥,如果...
200字以内,仅用于支线交流,主线讨论请采用回复功能。