Saturday, August 25, 2012

調試:學習如何破解窗口,方案等手動

調試:學習如何破解窗口,方案等手動

調試是一個程序,它與現代的DOS版本(我不知道我什麼時候開始出貨與DOS)。無論如何,所有Windows用戶應該有它了。

它為調試運行方案,unassembling和開裂,像引導扇區和閱讀“隱藏”的內存區域,更是一個偉大的工具。

以下是複製,從一個裝配教程誰是作者,我們不能信貸,因為我們不知道他是誰。

進入DOS和類型的“調試”,你會得到這樣的提示:
-

“”現在的類型,你應該得到以下回應:
組裝[地址]
比較C範圍內的地址
轉儲D [範圍]
請輸入電子郵件地址[名單]
填補F範圍列表
去政[=地址] [地址]
六角Ĥ值1值2
輸入I端口
負載L [地址] [驅動] [firstsector] [數字]
移動M系列地址
名稱N [路徑名] [arglist中]
輸出O端口字節
進行P [=地址] [數字]
戒菸Q
寄存器R [註冊]
搜索小號範圍列表
跟踪,T [=地址] [值]
裝卸ü[範圍]
編寫瓦特[地址] [驅動器] [firstsector] [數字]
分配擴展內存XA [#頁]
釋放擴展內存XD [處理]
地圖擴展內存頁XM [Lpage] [Ppage] [處理]
顯示擴展內存狀態XS最小

讓我們通過這些命令:
組裝:

-A
107A:0100

在這一點上,你就可以開始組裝一些程序,就像使用彙編。然而,調試彙編是非常有限的,因為你可能會注意到。讓我們嘗試進入一個簡單的程序:

-A
107A:0100 MOV AH,02
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
-G


程序正常終止

這是相同的方案,我們在前一章結束。注意你是如何運行的程序,你只要進入“G”,也注意到如何設置是不是有嗎?這是因為太有限支持這一調試。
另一件事你可以做與組裝是指定的地址,在您要開始,默認情況下,這是0100,因為這是所有。COM文件開始。
比較:

比較2塊內存和顯示他們一邊邊,一個字節一個字節。讓我們做一個例子。如果您尚未使用“Q”相當出調試。現在,鍵入“調試C:\ command.com”

0100升-C 8 0200
10A3:0100 7A 06 10A3:0200

此命令為8個字節的長度,偏移量與0200相比0100。調試的位置是不同的回應。如果2個位置是相同的,調試,忽略它們,如果都是相同的調試只需將返回到提示無任何反應。
轉儲:

dump將傾倒在指定的內存段。為了測試它,再次彙編程序代碼:

C:\>調試
-A
107A:0100 MOV AH,02
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
-D0100升8
107A:0100 B4的02 B2 21 41的CD光盤20
...... A.!

“B4的02 B2的41 20 21的CD光盤”你只是在機器語言程序。

B4的02 = 02 MOV AH,
B2的41 = MOV DL,41
CD 21 =詮釋第21號
CD 20 =詮釋20

“...... A.!”一部分是在ASCII程序。 “。”代表非打印字符。請注意,在那裡的一個。
輸入:

這是硬盤的命令之一。有了它,你可以輸入/改變某些內存區域。讓我們改變我們的計劃,以便它打印,而不是一個A乙
-E 0103 < - 編輯程序段0103
107A:0103 41.42 < - 變化中的41至42
-G


程序正常終止
-
不驚人嗎?
填充:

此命令是相當無用的,但誰知道....
它與指定的數據填充指定的內存量。讓例如清除掉所有內存段0100至0108,這恰好是我們的節目。
-F0100升8 0 < - 文件偏移量為8個字節的長度0 0100
-D0100升8 < - 驗證它的工作
107A:0100 00 00 00 00 00 00 00 00 00 .......
沒錯,它的工作。
轉到:

到目前為止,我們去(G)開始,我們剛剛創建的程序。但更可以使用。例如,可以說,我們要執行計劃在107B:0100:
-R CS < - 設置CS寄存器指向107B
政務司司長107A
:107B
-G = 100

你也可以設置斷點。
< - 進入我們原來的計劃,所以我們有什麼
107A:0100 MOV AH,02工作
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
-G 102 < - 成立了一個破發點,在107A:0102

此時,程序將停止,顯示所有的寄存器和當前指令。
十六進制:

這是非常有用的。它減去,並增加了兩個十六進制值:
-H 2 1
0003 0001 < - 2H + 1 + = 3H和2H - 1H = 1H

這是非常有用的計算程序長度,正如您稍後將看到的。
輸入:

這是一個更先進的命令,我決定不談論它現在太多。它將讀取一個字節數據從您的計算機的任何I / O端口(鍵盤,鼠標,打印機等)。

-I 3FD
60
-

你的數據可能會有所不同。
如果你想知道,3FD是COM端口1,又稱作為第一異步適配器。
負載:

此命令有2種格式。它可以用來加載name命令指定的文件名(N),也可以加載一個特定的部門。

-N C:\ command.com
-L

這將command.com裝入調試。當一個有效的程序被加載的所有寄存器,將成立,並準備執行程序。
另一種方法是一個比較複雜一點,但潛力也更加有用。語法是

大號<ADDRESS> <drive letter/> <sector> <amount load>
-L 100 2 10 20

這將抵消0100起加載驅動器C(0 = A 1 = B 2 = C等),為20H行業部門10H。恢復你刪除的文件,這可能是有用的。
移動:

移動一個字節的起始地址,並將其移動到目的地址。這是非常好的成一個自由區的臨時移動數據,比操作,而不必擔心影響原計劃。如果r命令後我會一併使用,這是​​特別有用。讓我們嘗試一個例子:
< - 進入我們原來的計劃,所以我們有什麼
107A:0100 MOV AH,02工作
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
-M 107A:0100 L的8 107B:0100 < - 8個字節從107A開始到107B:0100:0100
-E 107B:0103 < - 編輯107B:0103
107B:0103 41.42 < - 改變它42(
-D 107A:0100 L的8 < - 確保它的工作
107A:0100 B4的02 B2 21 41的CD光盤20 ...答!
-D 107B:0100 L的8
107A:0100 B4的02 B2 21 42的CD光盤20 ...二!
-M 107B:0100 L的8 107A:0100 < - 恢復原來的計劃,因為我們喜歡變化。
產品名稱:

這將設置一個文件名用於I / O命令調試。你必須包括文件擴展名,你可以使用另外的命令:

-N C:\ command.com
輸出:

究竟你認為它是。輸出發送到一個I / O端口的東西。如果你有一個外部調製解調器上那些很酷的燈光,就可以測試了這一點。找出您的調製解調器是什麼端口,並使用下面相應的十六進制數字:

COM 1 = 3F8 - 3FF(礦山3DF)
COM 2 = 2F8 - 2FF
COM 3 =? - ? (如果有人知道,請讓我知道)

現在打開的DTA(數據終端就緒)位發送01H到:
-O XXX 1 < - XXX是一個十六進制的COM端口

只要你點擊進入,在看看你的調製解調器,你應該看到一個光燈。你甚至可以有更多樂趣與輸出命令。說有人把“你的”電腦的BIOS密碼。通常情況下,你必須取出電池,擺脫它,但再也沒有:

心肌梗塞/ AWARD BIOS的
-O 70 17
-O 71 17

QPHOENIX的BIOS
-O 70法郎
-O 71 17

QGENERIC
-O 70 2E
-O 71法郎

這些命令將清除BIOS內存,從而禁用密碼。
步驟:

在執行程序的款項,通常一起使用柔韌跟踪,稍後,我將涵蓋。 go命令一樣,你可以指定一個地址開始

使用=地址
-P 2

調試將響應寄存器和當前要執行的命令。
相當:

這是最先進的調試功能,它退出調試!

-Q
註冊:

可以使用此命令顯示所有寄存器的當前值,或手動設置它們。這是非常有用的書面文件,你會看到後來。

- ŕAX中
AX的:011B
:5
-
搜索:

另一個非常有用的命令。用它來找到一個特定的字節的發生,或在一個段的字節系列。要搜索的數據對可以由任一字符,或一個十六進制值。輸入十六進制值在它們之間用空格或逗號,引號(單人或雙人)括起來的字符。您還可以搜索具有相同的字符串為十六進制和字符:
NC:\ command.com < - 負載command.com,因此,我們有一些數據,以搜尋
-L
L 0-0“的MS-DOS”< - “MS-DOS的”搜索整個內存塊
10A3:39E9 < - 10A3的​​字符串:39E9

注:搜索是大小寫敏感的!
跟踪:

這是一個真正偉大的調試功能。它將跟踪程序指令的時間,顯示的指令後,每個寄存器。 go命令一樣,你可以指定從哪裡開始執行從多久。
< - 是的,這件事再次
107A:0100 MOV AH,02
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
-T = 0100 8

如果你離開了你要跟踪的指令數量,你可以使用繼續(P)繼續執行,只要你想。
裝卸:

Unassembles的代碼塊。偉大的調試(和開裂)
-U 100 L的8 < - unassembles 8個字節的偏移量100開始
107A:0100 MOV AH,02 < - 首次亮相的回應
107A:0102 MOV DL,41
107A:0104詮釋第21號
107A:0106詮釋20
寫:

此命令非常相似加載。它也有2種方式可以操作:使用的名稱,並通過指定的確切位置。是指備份裝入更多信息。

注:必須設置寄存器CX為了寫文件的大小!
注:寫不會寫EXE或HEX文件[SIZE = 7] [SIZE = 14]。。