= =
同时爆破验证和签名
同时爆破验证和签名
<code class="lang-cpp">#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></code>
<code class="lang-cpp">#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></code>
引用 smith:是这样的,在数据加密验证的时候Crack 了那个特定的判断就可以输入任意密码绕过验证,之前写过一个类Winrar 的程序,过了很久自己把关键的判断给破解就可以绕过密码的输入验证..
破解程序和破解数据加密的场景搞混了吧。
破解程序如破解正版软件,改跳转指令确实是常用的方法。这个时候攻击的目标是程序自身
但楼主的程序是数据加密的场景,如解压一个winrar压缩包,要提供密钥才能解压。这个时候攻击的是加密的算法和密钥,如果...
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。