例項6 secret5.exe
將di中儲存的字元(y)賦值給al,再加一(得到z),與07(二進位制是00000111)做與運算,與30(二進位制是00110000)做或運算。
解密過程如下:
z(7a,二進位制是01111010),跟07做與運算的結果是00000010(02);
將該結果跟30做或運算,結果為00110010(32)。——『2』
p(70,二進位制是01110000),跟07做與運算的結果是00000000(00);
將該結果跟30做或運算,結果為00110000(30)。——『0』
v(76,二進位制是01110110),跟07做與運算的結果是00000110(06);
將該結果跟30做或運算,結果為00110110(36)。——『6』
!(21,二進位制是00100001),跟07做與運算的結果是00000001(01);
將該結果跟30做或運算,結果為00110001(31)。——『1』
b(01100010),結果(02),結果為(32)。——『2』
s(01110011),結果(03),結果為(33)。——『3』
f(01100110),結果(06),結果為(36)。——『6』
!(00100001),結果(01),結果為(31)。——『1』
x(01111000),結果(07),結果為(37)。——『7』
因為最多只能輸入10個字元(包括回車),所以只需解密9個字元。答案輸入8個或9個都可以。
答案就是206123617。
截圖如下:
總結:
與運算找小的,共同包含的;或運算找大的,合在一起的。
**中的常數都是十六進製制表示的。解密出來的數是十六進製制表示的ascii碼值,所以要轉化為相應的字元。
微機原理 反彙編例項01 02
例項2 secret01.exe 第乙個字元的ascii碼減一等於58,故該字元的ascii碼是59,該字元是y 第二個字元的ascii碼加一等於50,故該字元的ascii碼是4f,該字元是o 第三個字元的ascii碼加一等於56,故該字元的ascii碼是55,該字元是u。截圖如下 例項3 secr...
反彙編引擎的工作原理
ollydbg和ida都有乙個很重要的功能 反彙編 在x86平台下使用的彙編指令對應的二進位制機器碼為intel 指令集一opcode,intel指令手冊中描述的指令由6部分組成 irsinucton prefixes 指令字首 opcode 指令操作碼 mode r m 運算元型別 sib dis...
微機原理(5)概念區分
一 基本概念區分 流水線技術 流水線的工作方式就象工業生產上的裝配流水線。在 cpu 中由 5 6 個不同功能 的電路單元組成一條指令處理流水線,然後將一條 x86 指令分成 5 6 步後再由 這些電路單元分別執行,這樣就能實現在乙個 cpu 時鐘週期完成一條指令,因此 提高 cpu 的運算速度。經...