資源簡介
這個程序在linux平臺下編譯,可以破解全系的PDF加密文檔。破解方式是口令字典破解。默認情況是pdf9以下版本的破解,但其實pdf9.10.11等更高版本都是一樣的,在主程序里吧版本限制修改,所有版本的PDF文檔都是可以破解
代碼片段和文件信息
/**
?*?Copyright?(C)?2006-2015?Henning?Norén
?*?
?*?This?program?is?free?software;?you?can?redistribute?it?and/or
?*?modify?it?under?the?terms?of?the?GNU?General?Public?License
?*?as?published?by?the?Free?Software?Foundation;?either?version?2
?*?of?the?License?or?(at?your?option)?any?later?version.
?*
?*?This?program?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the
?*?GNU?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?General?Public?License
?*?along?with?this?program;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?Street?Fifth?Floor?Boston?MA??02110-1301?
?*?USA.
?*/
#include?
#include?
#include?
#include?
#include?
#include?
#include?“benchmark.h“
#include?“common.h“
#include?“md5.h“
#include?“rc4.h“
#include?“sha256.h“
#include?“pdfcrack.h“
#define?COMMON_MD5_SIZE?88
#define?COMMON_SHA256_SIZE?40
#define?COMMON_SHA256_SLOW_SIZE?56
#define?BENCHINTERVAL?3?/**?The?interval?to?run?the?specific?benchmarks?*/
static?volatile?bool?finished?=?false;
/**?interruptBench?is?used?to?stop?the?current?benchmark?*/
static?void
interruptBench()?{
??finished?=?true;
}
/**?print_and_clean?was?supposed?to?make?the?binary?somewhat?smaller?but
????I?think?I?failed?and?have?not?bothered?to?investigate?it?further?(like?
????checking?if?the?function?is?inlined?or?if?one?can?force?it?to?not?be?
????inline).?As?this?stuff?is?pretty?boring?and?not?critical?to?performance?I?
????would?prefer?that?all?the?boring?stuff?between?benchmarks?would?be?as?
????small?as?possible.
*/
static?void
print_and_clean(const?char?*str?unsigned?int?nrprocessed
const?clock_t?*start?const?clock_t?*end)?{
??printf(“%s\t%.1f\n“?str?
?nrprocessed/(((double)(*end-*start))/CLOCKS_PER_SEC));
??cleanPDFCrack();
??finished?=?false;
}
static?void
sha256_bench(void)?{
??uint8_t?*buf;
??uint8_t?hash[32];
??unsigned?int?nrprocessed?=?0;
??clock_t?startTime?endTime;
??buf?=?calloc(COMMON_SHA256_SLOW_SIZE?sizeof(uint8_t));
??alarm(BENCHINTERVAL);
??startTime?=?clock();
??while(!finished)?{
????sha256f(buf?COMMON_SHA256_SIZE?hash);
????buf[0]++;
????nrprocessed++;
??}
??endTime?=?clock();
??print_and_clean(“SHA256?(fast):\t“?nrprocessed?&startTime?&endTime);
??buf[0]?=?0;
??nrprocessed?=?0;
??alarm(BENCHINTERVAL);
??startTime?=?clock();
??while(!finished)?{
????sha256(buf?COMMON_SHA256_SLOW_SIZE?hash);
????buf[0]++;
????nrprocessed++;
??}
??endTime?=?clock();
??print_and_clean(“SHA256?(slow):\t“?nrprocessed?&startTime?&endTime);
??free(buf);
}
static?void
md5_bench(void)?{
??uint8_t?*buf;
??uint8_t?digest[16];
??unsigned?int?nrprocessed?=?0;
??clock_t?startTime?endTime;
??buf?=?calloc(COMMON_MD5_SIZE?sizeof(uint8_t));
??alarm(BENCHINTERVAL);
??startTime?=?clock();
??while(!finished)?{
????md5(buf?COMMON_MD5_SIZE?d
- 上一篇:servo.slx
- 下一篇:PS2主板雙聯雙位鍵盤鼠標插座PCB封裝AD
評論
共有 條評論