1. 程式人生 > >C++根據加密頭資訊,判斷檔案是否為加密檔案

C++根據加密頭資訊,判斷檔案是否為加密檔案

   針對某種加密程式,會對本地檔案加密,並且會在檔案頭寫入加密頭資訊(可以使用UE進行檔案二進位制檢視),現在貼上一段程式碼:讀取當前檔案的加密頭資訊,判斷該檔案是否為加密檔案。

  1. int CLdScanFileDlg::FileDecryptStatus( wchar_t* v_strFile,int v_iStartIndex,int v_iReadCount,wchar_t* v_strContent)  
  2. {  
  3.     USES_CONVERSION;  
  4.     BYTE buff[MAX_BUFF_LENGTH] = {0};  
  5.     string str = W2A(v_strFile);  
  6.     FILE *fp;  
  7.     fp = fopen(str.c_str(), "rb+");  
  8.     if (fp == NULL)  
  9.     {  
  10.         m_strLog.Format(L"Judge File[%s] Decrypt Failed, GetLaseError:%d", v_strFile, GetLastError());  
  11.         theApp.m_Errorlog.AddMsgLog(m_strLog, false);  
  12.         return 3;  
  13.     }  
  14.     //"181B031A1510197C0A190E7C6F726C5F"
  15.     //5C5C5C5C5C5C5C1D390344FFFFFFFFFF
  16.     //!< 設定開始讀取檔案的位置
  17.     fseek(fp, v_iStartIndex, SEEK_SET);  
  18.     //!< 讀取檔案長度
  19.     fread(buff, sizeof(BYTE), v_iReadCount, fp);  
  20.     fclose(fp);  
  21.     fp = NULL;  
  22.     int iTemp;  
  23.     char bValue[3]={0};  
  24.     char hs[MAX_BUFF_LENGTH]={0};  
  25.     theApp.m_Errorlog.WcharToChar(v_strContent,hs);  
  26.     int icurrent=0;  
  27.     for ( int i = 0 ; i < v_iReadCount; i++)  
  28.     {  
  29.         memcpy(bValue,hs+icurrent,2);  
  30.         sscanf(bValue, "%x", &iTemp);  
  31.         if(iTemp != buff[i])  
  32.         {  
  33.             return 2;  
  34.         }  
  35.         icurrent = icurrent + 2;  
  36.     }  
  37.     return 1;  
  38. }  

v_strFile:代表檔案全路徑

v_iStartIndex:代表讀取二進位制檔案開始位置

v_iReadCount:代表讀取位數

v_strContent:代表加密頭資訊

相關推薦

C++根據加密資訊判斷檔案是否加密檔案

   針對某種加密程式,會對本地檔案加密,並且會在檔案頭寫入加密頭資訊(可以使用UE進行檔案二進位制檢視),現在貼上一段程式碼:讀取當前檔案的加密頭資訊,判斷該檔案是否為加密檔案。int CLdScanFileDlg::FileDecryptStatus( wchar_t* 

c++ 列印簡單log資訊輸出內容到某一檔案

#include<iostream> #include<sstream> #include<fstream> using

c語言:根據輸入的分數判斷其所在的等級使用switch語句

#include<stdio.h> int main() { int score; char grade; printf("請輸入分數:"); scanf("%d",&score); int i; i=score/10; while(sco

根據給定檔案路徑判斷該路徑目錄還是檔案

最近寫了一個小程式,需要根據檔案路徑,來判斷該路徑為檔案還是資料夾,因為在MFC中複製檔案和資料夾的需要做不同處理,資料夾需要遞迴遍歷才能將其目錄下的東西複製完。而檔案則直接呼叫API函式CopyFile就能完成複製。  bool IsDirectory(CString

新增資訊"檔案下載/另存"對話方塊指定預設檔名.........................

string path = Server.MapPath(this.xlfile.Text+".xls");     System.IO.FileInfo file =new System.IO.FileInfo(path);     Response.Clear();  

利用ffmpeg修改MP4檔案資訊使其支援流式載入及播放

最近在用AS3寫一個Flash的播放器,發現同樣都是H264編碼的mp4檔案,有的可以載入一點就開始播放,有的就必須全部載入完才能播。用本地播放器(potplayer,暴風影音等)開啟檢視,發現編碼什麼的也都是一樣的:左邊這個必須是全部載入完成才能播,右邊這個是一載入就能播。

c語言 實現一個函式判斷一個數是不是素數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Python解密網易雲音樂.ncm檔案將.ncm檔案轉換.mp3檔案實現隨處播放(另附C++已編譯轉換器)

網易雲音樂把.mp3音樂檔案加密為.ncm檔案,導致不能將下載好的音樂複製到其它裝置或使用非網易雲音樂播放器播放,該程式可將.ncm檔案逆向解密為.mp3檔案並保留最高音質。 另有C++已編譯.exe轉換器,將.ncm檔案拖到.exe上直接執行轉換,生成.mp3檔案在.ncm檔案相同路徑。點選下

獲取已安裝應用資訊判斷是否系統應用

/** * 獲取已安裝應用資訊 * @param includeSystemApps true:包含系統應用 false:不包含系統應用 */ @SuppressWarnings("static-access") p

C#根據當前時間獲取本週本月本季度等時間段

 【轉載】http://www.cnblogs.com/jonycaimarcia/archive/2012/12/12/2814735.html     DateTime dt = DateTime.Now;  //當前時間               DateTime

從前端請求中獲取cookie資訊呼叫url獲取使用者的相關資訊判斷使用者合法性

有時會經常遇到對介面包裝一層,先要對使用者進行認證,呼叫該介面的使用者是否合法,下面我對用到檢查cookie資訊的方法進行下梳理 public class CheckCookie { //獲取請求中的cookie資訊 public static String

C# 輸入三條邊判斷是否組成三角形

工作需要,剛開始學C#,主管給安排的第一個程式,練手。這次壓力很大,但是也是一次很好的學習機會,加油吧 這次的開票申請單專案打算做部分程式碼的單元測試,咱們這邊出個測試人員跟著測,主要是介面部分,這部分的程式碼是C#編的 你先得找本C#的入門的書 然後看程式碼 在三角形計算

根據現在的時區判斷其他時區的時間包含夏令時。

/*** * * @param s 所在時區 * @return 所在時區的時間 */ private String calculateTime(String s, boolean isDaylight) {

web頁面使用js加密敏感資訊java端解密

為了保證安全,現在web應用中,大部分都使用https了,但是https只對傳輸通道進行加密,一旦通道被破,明文資料就被攻擊者獲取了,為了保證資料傳輸過程中的安全性,需要對敏感資料傳輸前做一次加密,下面演示如何通過RSA加密,做到前後端資料的安全傳輸: 首先我們需要一個前端

C#進行回文檢測判斷字符串是否是回文的代碼

str1 for adl ring tr1 朋友 str write 關於 下面代碼內容是關於C#進行回文檢測,判斷字符串是否是回文的代碼,應該是對各位朋友有些好處。 Console.WriteLine("算法1:請輸入一個字符串!");string str1 = Con

上傳頭像相機相簿檔案轉換File檔案

  1,彈出dialog  相機按鈕,相簿按鈕, //彈出dialog private void getDialog() { dialog = new Dialog(this); //填充對話方塊的佈局 View i

C#如何檢測一個檔案是否影象檔案

public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] st = sc.nextLine().split("

兩個字串s和t判斷t是否s的重新排列後組成的

原始碼在linux裡面編譯測試通過,判斷t字串是否是s字元中的字元重新排序組合的。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time

判斷輸入日期格式是否指定的格式判斷輸入是否數字

1. 指定日期格式     String START_TIME ="2018-10-11";                 DateFormat format = new SimpleDateFormat("yyyy-MM-dd");                 tr

C++中的RVO優化針對返回值物件時臨時物件的優化

摘要: RVO (return value optimization) 和NRVO (named return value optimization) 是C++在處理一個函式返回類物件並將返回值賦給另一個物件時,為了減少拷貝構造次數以及析構次數而採用的一種編譯器優化技術。 當函式的返回值