⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encry.cpp

📁 WINDOWS内核函数的通用虚拟地址地址一览表MD5加密工程
💻 CPP
字号:
// encry.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "string.h"
#include "stdio.h" 
#include "stdlib.h"
#include "conio.h"
#define DO_ENCRY      1
#if   DO_ENCRY ==1 
	#define encry main  
#else
	#define decry  main   
#endif
//  encry 基数,减数,  文件
//产生一个新的文件
//或者产生一个新的数组
//第一个字节说明填充的长度
//以4个字节为基本草组单位

int encry(int argc, char* argv[])
{
	//encry  pa pb  file 
	if(argc<3 ){
		printf("encry   pa pa  file");
		_exit(0);
	}
	FILE * fd ,* fd_enc;
	bool odd_flag_file=false;
	fd =fopen(argv[3],"rb");
	char    buff[50];
	sprintf(buff,"%s%s",argv[3],"end");
	FILE* fd_2;
	fd_enc = fopen(buff,"wb");
        char  word[2];
	    int   mf = atoi(argv[1]);
		int   subf = atoi(argv[2]);
        int   theByts=0;
		unsigned char  dst[4];
        char readb;
		int dd,dc;
  int time=0;
		while(!feof(fd)){
			
			 readb = 	fread((void*)word,1,2,fd);			
			 	 dd = word[0];
			     dc = word[1];
			dd = ((dd<<8)&0xff00) | (dc&0xff);
			dd  = dd *mf - subf;
			dst[0] = dd >>24;
			dst[1] = dd>>16;
			dst[2] = dd>>8;
			dst[3] = dd;
			if(readb!=0&&readb<2) {
				odd_flag_file =true;
				break;
			}else if(readb==0){
				break;
			}
			fwrite(dst,1,4,fd_enc);		
//			printf("%x %x %x %x",dst[0] ,dst[1] ,dst[2] ,dst[3] );
			printf("%d ",time++);

		}

		fclose (fd_enc);
		fclose(fd);
		////////////////////////////////////////////////////////////////////////
		sprintf(buff,"%sseed",argv[3]);
		fd_2 =fopen(buff,"wb");
		char vv[3];
		vv[0] = mf;
		vv[1]=subf;
		if(odd_flag_file){
			vv[2] = word[0];

		fwrite(vv,1,3,fd_2);
		}else
		{
			fwrite(vv,1,2,fd_2);
		}
		fclose(fd_2);
	
return 0;
}


int decry(int argc, char* argv[])
{ 
	//de    file fileseed
	if(argc<2){
	printf("decry  file fileseed");
	exit(0);
}
	unsigned char buff[45];
	strcpy((char*)buff,argv[1]);
	strcat((char*)buff,"end");

	FILE*  fds = fopen((char*)buff,"rb");
	FILE*  fd_seed;
	char len;
	
	unsigned char  buff_new[45];
	char rbuf[4];
	char wbuf[2];
	char nread;
	strcpy((char*)buff,argv[1]);
	
	
	strcpy((char*)buff_new,(char*)buff);
	sprintf((char*)buff,"%sseed",(char*)buff);
	 fd_seed=fopen((char*)buff,"rb");
     nread = fread((void*)buff,1,3,fd_seed);
	 fclose(fd_seed);
     int tmp;
	 int onceread;
	 fd_seed = fopen((char*)buff_new,"wb");




	 while(!feof(fds)){
		 if(0==(onceread=fread((void*)rbuf,1,4,fds)))break;
		 
		 unsigned int a;
		unsigned int b;
		unsigned int c;
		unsigned int d;
         a = rbuf[0];
		 b =rbuf[1];
		 c =rbuf[2];
		 d=rbuf[3];
		 a = a<<24;
		 a = a& 0xff000000;

		 b= b<<16;
		 b=b&0xff0000;

		 c= c<<8;
		 c= c&0xff00;
		 d = d&0xff;;

     printf("%x %x %x %x -",a,b,c,d );
         char* p = (char*)&tmp;
		 p[0] = rbuf[3];
		 p[1] = rbuf[2];
		 p[2] = rbuf[1];
		 p[3] = rbuf[0];
         //tmp = (a&0xff000000)|(b&0xff0000)|(c&0xff00)|(d&0xff);
   printf("%x ",tmp );
		 tmp  = tmp+(char)buff[1];
		 tmp = tmp/buff[0];
		 wbuf[0] = tmp>>8;
		 wbuf[1] = tmp;
		 printf("%x %x ",wbuf[0],wbuf[1] );
          //getch();
  
		 fwrite((void*)wbuf,1,2,fd_seed);
	 }
	 if(nread==3){
		 fwrite((void*)(buff+2),1,1,fd_seed);
	 }
	 fclose(fd_seed);
	 fclose(fds);
     return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -