Re: [請益] 要如何繞過Keypro的驗證?

看板Soft_Job作者 (ggg)時間14年前 (2012/03/09 00:46), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串5/6 (看更多)
: → iman00b:就算你證明是他錯了,也是在教他而已...值得嗎? 03/08 08:37 : → iman00b:送你一句話: 使君負三百,教其凡夫俗子一生不識太行山. 03/08 08:38 ============================================================================= iman00b 果真很有學問, 讓大家知道一下太行山典故. 一書生帶了他的僕人進太行山,僕人見道上碑字,誤讀為“太形山”。書生笑 道:“杭也,非形也。”僕人固執不信。於是,二人約定,路上遇見識者,便 向他請教,誰輸了罰錢一貫。行數里,至村學,問老儒,老儒對書生說:“形 也,非杭也。”僕人得錢,找個地方買酒喝去了。書生意不能平,回來找到老 儒,問:“先生何以認同蠢僕之言?”老儒大笑:“公何等不解事,一貫錢細 事耳,好教他一生不識太行山。” 呵呵,一笑。 =================================================================== 2.2.2. Prefetch Instruction Queue (PIQ) manipulation: This method is a bit similar to (1.3), but it fools ANY debugger, or any other process that executes one operation at a time. The PIQ is an area within the CPU, that pre-fethces, ie. takes in advance, instructions from memory, so when they need to be executed, it would take less time to get them, since they are already in the CPU. The PIQ length ranges from 6 or 4 in old computers, up to as high as 25 in new ones. What the trick does is change the FOLLOWING opcode to something meaningless. If you are debugging, then the change will take place BEFORE the instructions is executed or fetched. If you run the program NORMALLY, by the time you change the opcode, it will have already been fetched. Example: CS:0100 B97502 MOV CX,0275 CS:0103 BE9001 MOV SI,0190 CS:0106 89F7 MOV DI,SI CS:0108 AC LODSB CS:0109 C7060F012406 MOV Word Ptr [010F],0624 CS:010F 3473 XOR AL,73 CS:0111 AA STOSB CS:0112 C7060F012406 MOV Word Ptr [010F],0624 CS:0118 E2EE LOOP 0108 Watch this: CS:010F 2406 AND AL,06 : 這個程式的徵結根本就在 本身是個 self-modified code 的程式, : xor al,73 不會被執行而是代以 and al,06 這個指令 : 不管是 single step multiple trace 或是只設斷點在 011a , 快跑完loop, : 搬移的資料區事先全設ff, 事後都是同樣結果 06 . 假如 prefetch queue 發生作用, 那是 xor al,73 已經被拿到 cpu 內不會 被 modified code 改到, 做的動作應該還是 xor al,73 這招想說的是一步一步做, 跟快速做, 結果會不同. 這是假設 mov word[010f],0624 在快做的時候會覆蓋不了已經在 cpu 內的 010f 指令 xor al,73 很不幸, 在 vm86 mode 或 DOS 7.1 下執行 debug , 都沒有因 prefetch 而不發生 無法 self modify code 的效果. 我的老爺 cpu 是 P4 2.4GHz. 這是實測執行的結果. ================================================= -u100 14CC:0100 B97502 MOV CX,0275 14CC:0103 BE9001 MOV SI,0190 14CC:0106 89F7 MOV DI,SI 14CC:0108 AC LODSB 14CC:0109 C7060F012406 MOV WORD PTR [010F],0624 14CC:010F 3473 XOR AL,73 14CC:0111 AA STOSB 14CC:0112 C7060F012406 MOV WORD PTR [010F],0624 14CC:0118 E2EE LOOP 0108 14CC:011A 90 NOP 14CC:011B F1 DB F1 14CC:011C F1 DB F1 14CC:011D 0000 ADD [BX+SI],AL 14CC:011F 0000 ADD [BX+SI],AL -f190 600 ff -g=100,11a AX=0006 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0405 DI=0405 DS=14CC ES=14CC SS=14CC CS=14CC IP=011A NV UP EI PL NZ NA PE NC 14CC:011A 90 NOP -d190 19f 14CC:0190 06 06 06 06 06 06 06 06-06 06 06 06 06 06 06 06 ................ ======================================================================== 哈! 我的 P4 讓人一生不識太行山 !! ※ 編輯: ggg12345 來自: 140.115.4.90 (03/09 00:50)

03/09 01:28, , 1F
funny :D
03/09 01:28, 1F

03/09 12:11, , 2F
的確如僕人一樣揚揚得意
03/09 12:11, 2F

03/09 13:22, , 3F
叫你去找書看又不要 ,又愛鬼扯, 實在是強者.
03/09 13:22, 3F

03/09 13:28, , 4F
這串我完全看不懂..... (沉)
03/09 13:28, 4F

03/09 13:59, , 5F
看不懂沒關係, 去找舊書或看我的link 就好了.
03/09 13:59, 5F

03/09 14:00, , 6F
書和link 就在哪, 事實勝於雄辯.
03/09 14:00, 6F

03/09 14:30, , 7F
只好推 L 大佛心... XD
03/09 14:30, 7F

03/09 21:27, , 8F
有實驗精神很好阿~只死記書內容不去驗證和理解~就死讀書了
03/09 21:27, 8F
文章代碼(AID): #1FME9UyX (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1FME9UyX (Soft_Job)