主頁 >  其他 > QR 碼詳解(上)

QR 碼詳解(上)

2020-09-23 21:21:11 其他

關于二維碼,我查了下資料,現在基本都在用日本的 QR 碼,PDF417以及漢信碼日常基本看不到,原因在于各方面來說,的確是 QR 碼最為優秀,所以我準備寫一篇介紹 QR 碼的文章,如果是寫書,可能不方便寫得這么詳盡,但如果是網上的文章,就可以自由發揮了,寫完這篇文章,再抽取部分內容正規化,并整合其它內容形成書的第四章,為方便未來上課講解方便,以及快速畫圖,我還做了一個《QR助手程式》,幫助繪制 QR 碼中的各部分圖形,最后演化成一個二維碼繪制程式,本來并未打算要自己寫二維碼繪制程式的,網上有很多現成的開發包,但一方面為了讓自己更熟悉二維碼,另一方面,用實作一個簡單的二維碼繪制程式讓學生參考,可以有效降低學生的學習門檻,   QR 碼是日本發明的一種二維碼,也是目前應用最為廣泛的編碼,在中國,這種編碼幾乎無處不在,微信支付、支付寶支付、共享單車、各種廣告掃描關注等等,   1. QR 碼的特點 1. 存盤容量大 傳統的條形碼只能處理 20 位左右的資訊,與此相比,QR 碼則可處理幾十倍上百倍的資訊,另外,QR 碼還可以支持所有型別的資料(如:數字、英文字母、日文字母、漢字、二進制、控制碼等),一個 QR 碼最多可處理 7089 個數字的巨大資訊量,
2. 占用空間小 QR 碼使用縱向和橫向兩個方向處理資料,相同的資訊量,QR 碼所占空間更小,下圖分別是 GS1 編碼 `(02)66901234000049(17)050101(37)10(10)ABC`的 GS1-128 編碼和 QR 碼圖形,我先在螢屏上繪制圖形,然后使用掃碼槍掃描,接下來縮小圖形,直到掃碼槍認不出為止,最后等比例放大,得到下面繪制面積對比,
  3. 糾錯能力強 QR 碼具備“糾錯功能”,即使部分編碼變臟或破損,也可以恢復資料,資料恢復以碼字為單位(是組成內部資料的單位,在QR碼的情況下,每8位元代表1碼字),最多可以糾錯約30%(根據變臟和破損程度的不同,也存在無法恢復的情況),
4. 可以從任意方向讀取 QR碼從360°任一方向均可快速讀取,QR碼中在 3 個定位圖案,可以幫助QR碼不受背景樣式的影響,實作快速穩定的讀取,傳統激光掃碼槍在掃描條碼時,只能使用一個方向進行掃描,但如果使用的是 CCD 掃描槍,則可以從任一方向掃描條碼,   2. QR 碼的結構 一個 QR 碼可以分為兩個部分:功能圖形和編碼區域,
功能圖形起到定位和校正圖形的作用,資料區記錄了具體的資料資訊、糾錯資訊和版本資訊,
2.1 QR 碼符號版本和規格 QR 碼符號共有 40 種規格,分別為版本1、版本2……版本40,版本 1 的規格為21模塊×21模塊,版本 2 的規格為25模塊×25模塊,以此類推,每一版本符號比前一版本每邊增加4個模塊,直到版本40(規格為177模塊×177模塊),  
由上圖可知,版本1圖形被劃分為21×21個小方塊,模塊指的就是這些小方塊,是 QR 碼繪制的最小單元,在繪制 QR 碼時,將存在資料的模塊填充為深色,最終組成 QR 碼圖形,下圖是版本40的模塊圖,由177×177個小方塊組成,

 2.2 尋像圖形 尋像圖形包括三個相同的位置探測圖形,分別位于二維碼左上角、右上角、左下角,每個位置探測圖形由7×7個模塊組成如下圖所示:
  符號中其他地方遇到類似圖形的可能性極小,因此可以在視場中迅速地識別可能的 QR 碼符號,識別組成尋像圖形的三個位置探測圖形,可以明確地確定視場中符號的位置和方向,下圖是版本1和版本6的尋像圖形,由圖可知,版本號越高,尋像圖形在整個圖案中所占比例越小,

2.3 位置探測圖形分隔符 為方便識別位置探測圖形,在每個位置探測圖形和編碼區域之間有寬度為 1 個模塊的分隔符,如下圖黃色區域所示,此區域應全為空白,不能填入資料,

2.4 定位圖形 水平和垂直定位圖形分別為一個模塊寬的一行和一列,由深色與淺色模塊交替組成,其開始和結尾都是深色模塊,水平和垂直定位圖形分別位于第6行和第6列(行、列由0開始計數),并且避開位置探測圖形,它們的作用是確定符號的密度和版本,提供決定模塊坐標的基準位置,下圖是繪制了定位圖形后的版本1和版本6圖案,

2.5 校正圖形 校正圖形作為一個固定的參照圖形,在影像有一定程度損壞的情況下,譯碼軟體可以通過它同步影像模塊的坐標映像,每個校正圖形由5×5模塊組成,如下圖所示:

校正圖形的數量視符號和版本號而定,版本1沒有校正圖形,版本2及以上均含有校正圖形,校正圖形的數量視 QR 碼的版本號而定,下表列出了前14個版本的資料,完整資料請查看國家標準 GB/T 18284-2000 中的附錄 E,


下面講講如何看懂中心模塊的行/列坐標值,例如在版本 7 中,表中給出值 6、22 和 38,則校正圖形的中心點位置行、列坐標為(6,22)(22,6)(22,22)(22.38)(38,22)(38,38),由于坐標(6,6)(6,38)(38,6)坐標位置被位置探測圖形占據,因此,這些坐標位置沒有放置校正圖形,說白了就是將中心模塊的行/列坐標值中的每個值分別與自己及其他值組成坐標,然后洗掉左上、右上、左下坐標,即得出結果,
下圖是版本 1 及版本 7 的校正圖形:

下圖是版本 15 及版本 40 的校正圖形:

沒有固定公式計算中心模塊的行/列坐標值,但觀察以上 4 張校正圖形,可以發現,QR 碼設計者在選擇坐標值時,使得第一行和第一列校正圖形正好融合進定位圖形,不會使定位圖形遭到破壞,
3. 資料編碼 各種用于影像識別的功能圖形已經安放完畢,下一步就是對資料進行編碼了,標準 QR 碼可編碼資料型別有四種:數字、字母數字、8位位元組和 Kanji,其中 Kanji 為日文日文字符,我們國家標準 GB/T 18284-2000 增加了 QR 碼的表示范圍,下表是 QR 碼可表示的資料型別及其相應的模式指示符,  
模式 指示符    模式 指示符
ECI 0111   日文  1000 
數字 0001    中文 1101
字母數字 0010   FNC1 0101(第一位置)
8位位元組 0100    FNC1 1001(第二位置)
表 1:模式指示符
ECI 是什么東西,我很想搞懂,但很遺憾網上幾乎沒有資料,AIM ECI 規范的外文資料,需收費下載,沒辦法,等以后再說吧,現在只知道 AIM 是一家公司,ECI 是規范,有了這個規范,有了這個東西,可以使用二維碼裝載各類不同的字符集,也可使接收系統在資料被使用之前知道做哪些特定的擴展或解密處理,
FNC1 相信讀過前面寫的《條碼技術》這篇文章中的 GS1-128 條碼的都應當很熟悉,這類編碼是專為 GS1 標準準備的,本文僅針對數字、字母數字、8 位位元組以及 FNC1 模式進行講解,示例程式也只實作這四種編碼方式,
3.1 數字模式 數字模式只能對十進制數字 0~9 進行編碼,通常的密度為 10 位表示 3 個字符,
3.1.1 將數字轉換為位流 將要表示的數字從左邊開始每三位分為一組,然后將每組資料轉換為 10 位二進制(10 位二進制可表示的最大數字為 1023),如果最后一組數字只剩兩位,則使用 7 位二進制表示(7 位二進制可表示的最大數字為 127)這兩個數字,如果最后一組數字只剩一位,則使用4位二進制表示最后一個數字(4 位二進制可表示的最大數字為 15),將二進制資料連接起來并在前面加上模式指示符和字符計數指示符,
**【例1】:** 數字`01234567`: 1. 分為 3 位一組:012  345  67 2. 將每組轉換為二進制:     012 -> 0000001100     345 -> 0101011001      67 -> 1000011 3. 將二進制連接為一個序列:0000001100 0101011001 1000011
3.1.2  將字符計數指示符轉換為二進制 字符計數指示符表示裝載字符的個數,長度隨不同的 QR 碼版本以及模式而不同,表 2 列出了各版本及模式所對應的字符計數指示符的長度,  
版本 數字模式 字母數字模式  8 位位元組模式  中國漢字模式
1~9 10 9 8 8
10~26 12 11 16 10
27~40  14 13 16 12
表 2:字符計數指示符的位數
資料的數字位數為 8,查上表數字模式列,如果使用版本 1 來表示,則位數為 10,最終: 8 -> 0000001000
#### 加入模式指示符及字符計數指示符 查表 1 ,數字模式的指示符為 0001,以【模式指示符 + 字符計數指示符 + 數字位流】的方式連接資料最終位流為:
0001 0000001000 0000001100 0101011001 1000011
接下來再做一個例子加深理解:
**【例2】:** 數字`0123456789012345`: 1. 分為 3 位一組:012  345  678  901  234  5 2. 將每組轉換為二進制:     012 -> 0000001100     345 -> 0101011001     678 -> 1010100110     901 -> 1110000101     234 -> 0011101010       5 -> 0101 3. 將二進制連接為一個序列:     0000001100 0101011001 1010100110 1110000101 0011101010 0101
4. 數字位數為 16,使用版本 1 表示,位數為 10,最終: 16 -> 0000010000
5. 加上數字模式的指示符 0001 最終位流為:     0001 0000010000 0000001100 0101011001 1010100110 1110000101 0011101010 0101
3.2 字母數字模式 字母數字模式對 45 個字符的字符集進行編碼,即:10 個數字 0~9,26 個大寫字母 A~Z,以及 9 個符號 SP、$、%、*、+、-、.、/,通常情況下,兩個輸入字符用 11 位表示,下表是 45 個字符及其編碼:
字符   字符   字符   字符   字符
0 0   9 9   I 18   R 27   SP 36
1 1   A 10   J 19   S 28   $ 37
2 2   B 11   K 20   T 29   % 38
3 3   C 12   L 21   U 30   * 39
4 4   D 13   M 22   V 31   + 40
5 5   E 14   N 23   W 32   - 41
6 6   F 15   O 24   X 33   . 42
7 7   G 16   P 25   Y 34   / 43
8 8   H 17   Q 26   Z 35   : 44

要完整表示 45 個字符中的一個,需要至 6 個位的二進制數字($2^6=64$),那么每兩個字符需要占用 12 個位的空間,QR 碼使用了另一種編碼方法,將表示兩個字符壓縮為使用 11 個位的空間,
將輸入的數字分為兩個字符一組,將左邊的字符的值乘以 45 與第二個字符的值相加,將所得的結果轉換為 11 位二進制數,最大字符組為"::"(44×45+44=2024,而211=2048),如果輸入的資料的字符不是 2 的倍數,將最后一個字符編碼為 6 位二進制數,將所得的二進制數連接起來并在前面加上模式指示符和字符計數指示符,得到最終編碼,
**【例 3】:** 資料`AC-42`,QR 碼版本號 1: 1. 根據表 5 查出字符的值:AC-42 -> (10,12,41,4,2) 2. 將結果分為 2 個一組:(10,12)(41,4)(2) 3. 將每組資料轉換為 11 位二進制數:     (10,12) -> 10×45+12=462 -> 00111001110     (41,4) -> 41×45+4=1849 -> 11100111001     (2) -> 2 -> 000010 4. 二進制資料順次連接得到資料位流: 00111001110 11100111001 000010 5. 字符數為 5,查表2,使用 9 位二進制數表示,將字符計數指示符轉換為二進制,     5 -> 000000101 6. 查表 1,模式指示符為 0010,以【模式指示符 + 字符計數指示符 + 數字位流】的方式連接資料最終位流為:     0010 000000101 00111001110 11100111001 000010
3.3  8 位位元組模式 在 8 位位元組模式中,一個 8 位碼字直接表示一個輸入資料字符的 ASCII 字符值(ASCII 譯碼表請查[這里](http://iotxfd.cn/demo/ascii.html)),即密度為每個字符 8 位,將二進制資料連接起來并在前面加上模式指示符和字符計數指示符,得到最終編碼,
**【例 4】:** 資料`Ab>Cd`,QR 碼版本號 1: 1. 在 ASCII表中查出各字符的值,并轉換為 8 位二進制:     A -> 65 -> 01000001     b -> 98 -> 01100010     `>` -> 62 -> 00111110     C -> 67 -> 01000011     d -> 100 -> 01100100 2.  二進制資料順次連接得到資料位流:01000001 01100010 00111110 01000011 01100100 3. 字符數為 5,查表2,使用 8 位二進制數表示,將字符計數指示符轉換為二進制,     5 -> 00000101 4. 查表 1,模式指示符為 0100,以【模式指示符 + 字符計數指示符 + 數字位流】的方式連接資料最終位流為:     0100 00000101 01000001 01100010 00111110 01000011 01100100
3.4 混合模式 之前在學習 Code 128 編碼時大家應該還記得,為了達到符號長度最小的目的,Code 128 條碼支持混合編碼的方式,QR 碼也支持以混合方式進行編碼,其基本結構為【模式指示符 + 字符計數指示符 + 資料】,其后緊跟下一段的指示符開始另一段,下圖為有 n 段資料的結構,

由于 GS1 標準僅支持 ASCII 碼,這里只針對數字模式、字母數字模式、8 位位元組模式的混合編碼進行討論,以下是針對上述模式的編碼規則,完整編碼規則請參考 GB/T 18284-2000 的附錄 H,
3.4.1 位流長度最優化的編碼規則 下列是形成最短位流的演算法的基礎,在方括號中的字符數如[5,7,9]分別用于版本 1~9,10~26 和版本 27~40,
1. 選擇初始模式     * 如果初始輸入資料是在 8 位位元組的二進制字符的專有子集中,選擇 8 位位元組模式;     * 如果初始輸入資料是在字母數字字符集的專有子集中,并且如果字符個數少于[6,7,8],其后緊跟 8 位位元組專有子集中的資料,那么選擇 8 位位元組模式,否則選擇字母資料模式;     * 如果初始資料是數字,并且如果數字個數少于[4,4,5],其后緊跟 8 位位元組字符集專有子集中的資料,那么選擇 8 位位元組模式,否則如果少于[6,7,8]后隨字母數字字符集的專有子集中的資料,那么選擇字母數字模式,否則選擇數字模式, 2. 在 8 位位元組模式中     * 如果有不少于[6,8,9]的數字字符序列出現在來自 8 位位元組二進制字符集的專有子集的多個資料前,那么轉至數字模式;     * 如果有字母數字字符集的專有子集的不少于[11,15,16]的字符序列出現在來自 8 位位元組二進制字符集的專有子集的資料前,那么轉至字母數字模式, 3. 在字母數字模式中     * 如果有 8 位位元組字符集的專有子集的一個或多個字符出現,轉至 8 位位元組模式;     * 如果有不少于[13,15,17]的數字字符資料序列在來自字母數字字符集的專有子集的資料前出現,轉至數字模式, 4. 在數字模式中     * 如果有一個或多個來自 8 位位元組的專有子集中的字符出現,轉至 8 位位元組模式;     * 如果有一個或多個字母數字的專有子集中的字符出現,轉至字母數字模式,
> 編者注:上述規則摘抄至 GB/T 18284-2000,最后一句是有問題或者不完善的,如果在數字模式中出現字符`Aabcd`,因為`A`屬于字母數字字符集,而`abcd`只屬于 8 位位元組字符集,此時按最后一句話,需先轉換為字母數字模式,加入字符`A`,然后馬上又轉換為 8 位位元組模式,很顯然,這樣做浪費了空間,由于字母數字字符集是 8 位位元組字符集的子集,正確的做法應當是轉換為 8 位位元組模式,然后加入字符`Aabcd`,
**【例 5】:** 資料`123456ABC123`,QR 碼版本號 1: 1. 根據編碼規則,首先應選擇數字模式作為初始模式:0001 2. 加入字符計數指示符:6 -> 0000000110 3. 加入 123 編碼:123 -> 0001111011 4. 加入 456 編碼:456 -> 0111001000 5. 根據編碼規則,轉換為字母數字模式:0010 6. 加入字符計數指示符:6 -> 000000110 7. 加入 AB 編碼:(10,11) -> 10×45+11=461 -> 00111001101 8. 加入 C1 編碼:(12,1) -> 12×45+1=541 -> 01000011101 9. 加入 23 編碼:(2,3) -> 2×45+3=93 -> 00001011101
將以上生成的二進制資料從上至下連接,生成最終位流,
3.5 FNC1 模式 FNC1 模式有兩種模式指示符,用于標識按特定的行業或應用格式化資訊的符號,FNC1 在第一位置時支持 GS1 標準,FNC1 在第二位置時支持按 AIM 認可的特定行業或者特定應用規范格式化資訊,由于 AIM 查不到資料,這里只介紹 FNC1 第一位置模式,即模式指示符為:0101,
在 GS1-128 中,FNC1 用于資料段分隔,而 QR 碼中沒有專用的 FNC1 字符,在字母數字模式中用 % 字符代替,如果在資料中也有 % 符號出現,則 應按 %% 進行編碼,在 8 位位元組模式中用字符 GS(ASCII 值 29)代替,
> 編者注:個人感覺,這個設計方式相比 GS1-128 來說,并不太合理,即使資料只是純數字,但只要在其中需要分段,安置 FNC1 ,就必須轉為字母數字模式,如果后面還有足夠多的數字,還得再次轉回來,這樣做的成本太高了,數字模式,還有部分未使用的編碼,應當有自已的 FNC1,即使這個編碼占據 10 個位,還是合算的,
**【例 6】:** 資料`(02)66901234000049(17)050101(37)10(10)ABC`,QR 碼版本號 1: 首先分析資料中的 AI:(02)表示物流單元內貿易專案,長度固定;(17)表示有效期,長度固定;(37)表示物流單元內貿易專案數量,長度不固定,需在此 AI 最后加入 FNC1;(10)表示批號,長度不固定,它為最后一個 AI,無需加入 FNC1 標志,最終編碼變為:
`(02)66901234000049(17)050101(37)10<FNC1>(10)ABC`
編碼程序:
1. 將 FNC1 第一位置作為初始模式:0101 2. 根據位流長度最優化的編碼規則,加入數字模式指示符:0001 3. 加入字符計數指示符:28 -> 0000011100 4. 加入 026 編碼:026 -> 0000011010 5. 加入 690 編碼:690 -> 1010110010 6. 加入 123 編碼:123 -> 0001111011 7. 加入 400 編碼:400 -> 0110010000 8. 加入 004 編碼:004 -> 0000000100 9. 加入 917 編碼:917 -> 1110010101 10. 加入 050 編碼:050 -> 0000110010 11. 加入 101 編碼:101 -> 0001100101 12. 加入 371 編碼:371 -> 0101110011 13. 加入 0 編碼:0 -> 0000 14. 根據編碼規則,轉換為字母數字模式:0010 15. 加入字符計數指示符:6 -> 000000110 16. 加入 %1 編碼:(38,1) -> 38×45+1=1711 -> 11010101111 17. 加入 0A 編碼:(0,10) -> 0×45+10=10 -> 00000001010 18. 加入 BC 編碼:(11,12) -> 11×45+12=507 -> 00111111011
將以上生成的二進制資料從上至下連接,生成最終位流,
3.6  終止符 符號的資料結尾由緊跟在最后一個模式段后面的終止符序列 0000 表示,當資料位流數量正好填滿符號容量時,它可以省略,或者當符號所余的容量不足 4 位時它可以截短,
3.7  位流到碼字的轉換 每個模式段的位流需要按順序連接在一起,最后添加終止符,除非資料位流正好填滿符號容量,所得的資料位流將被分為一個個碼字;所有碼字長度都是 8 位,如果位流長度最后一個碼字不足 8 位,則用二進制值為 0 的填充位填充至 8 位,填充位應加在資料位流最后 1 位(最低位)的后面,說白了就是將位流進行 8 位對齊,
我們以【例 1】最終生成的資料位流為例說明上述程序,
1. 【例 1】最終生成的資料位流:000000110001010110011000011 2. 加入終止符 0000,(現在符號容量足夠,不用考慮容量不足的情況):     0000001100010101100110000110000 3. 將資料位流劃分為碼字,這里在每 8 個位后加一個逗號表示:     00000011,00010101,10011000,0110000 4. 我們發現最后一個碼字只有 7 位數字,不足 8 位,補 1 個零,最終資料變為:     00000011,00010101,10011000,01100000
最終【例 1】生成的資料使用了 4 個碼字,
接下來就要查表了,下表列出了各個版本 QR 碼的碼字容量,這里只列出一小部分,完整表格請參考 GB/T 18284-2000,

注意表格中的紅框部分,由于只使用了 4 個碼字,我們完全可以選擇最高糾錯等級 H,所以最終選擇為:版本 1 的 H 糾錯等級 QR 碼,在此等級中可放置 9 個碼字,還剩余 5 個碼字是不能放空的,需要交替填充碼字 11101100 和 00010001,直至填滿整個 9 個碼字,
5. 將空位填滿至 9 個碼字,最終資料變為:     00000011,00010101,10011000,01100000,11101100,00010001,11101100,00010001,11101100
好!上半場結束,圖多,還是分兩篇寫吧,下半場內容就比較抽象了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/114528.html

標籤:其他

上一篇:bugku-web(變數1)

下一篇:nodejs中利用expresss腳手架和bootstrap,資料庫mongodb搭建的留言板案例

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more