1. 程式人生 > >Radasm使用簡明手冊(中文版)

Radasm使用簡明手冊(中文版)

操作方面: 一、書籤:
SHIFT+F8為所在行下書籤或刪除書籤(Crtl+0-9能定義存於檔案中的10個書籤),可通過編輯\書籤\開關書籤。(CRTL+F8為下一書籤,F8為上一書籤)二、列選擇:
拉框時用到,CRTL+B為切換行&列 拉框。三、展開 & 關閉模組 & 顯示行號:
CRTL+E為展開和關閉模組,在左下腳2 & 3小按鈕是展開全部和關閉全部的方式,1是顯示行號。四、顯示API的函式原型:
當游標碰到一個函式名稱時,可顯示一個函式的原型,用檢視\資訊工具開啟即可。五、輸出視窗:
可通過檢視\輸出視窗或點選標題欄上的圖示即可。六、全屏顯示:
通過CRTL+W切換。七、鎖定檔案:
在檔案樹中,可滑鼠右鍵鎖定&解鎖檔案。八、新建專案:
當建立一個專案時,可通過嚮導的倒數第2步會出現“匯入”按鈕,來匯入已有的檔案(如圖示等),然後在檔案組中,右鍵\匯入\檔案即可,可通過工程組(右鍵檔案樹)對檔案進行分類。九:設定工程的儲存位置 & 檔案關聯:
設定工程的儲存位置:通過選項\設定路徑Projects ,檔案關聯:在資料夾選項
\檔案型別選項卡里設定(關聯.asm和.rap)十:斷點設定:(程式執行時才會起作用CRTL+SHIFT+F5)
A:在工程選項中把“發行”改成“除錯”
B:在檔案定義的最後加上 include C:\RadASM\Masm\Inc\RADbg.inc
C:ALT+F8為設定&清除斷點,通過編輯\斷點可全部清除斷點
D:當斷點沒有反映時可能是沒有F5重新編譯或者是LINK時依賴的資原始檔不存在造成的(通過工程選項中可設定LINK)十一:資源編輯採用VC來編輯,把編輯好的.RC程式碼貼上到RADASM中即可。十二:工具箱中
1)ASCII編碼表
2)顏色拾取的值
3)程式碼格式化
生成檔案方面:工程\工程選項:(只推薦使用幾個常用的)
Compile(編譯資原始檔):4,O,$B/RC.EXE /v /I "$I",1 (4代表最終輸出的RES檔名)
Assembly(彙編asm為機器碼):3,O,$B\ML.EXE /c /coff /Cp /Zi /nologo /I"$I",2 (3代表最終輸出的OBJ檔名)
Link(連線檔案並生成PE檔案):5,O,$B\LINK.EXE /SUBSYSTEM:WINDOWS /DEBUG /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3,4 (/OUT:"$5"PE檔名)
Run(執行檔案):0,0,,5(5代表執行的檔名)
Run w/debug(除錯執行):0,0,"$E\OllyDbg",5(5代表除錯執行的檔名)
生成PE檔案的順序:
1:Compile(編譯資原始檔) SHIFT+F5
2:Assembly(彙編asm為機器碼) F5
3:Link(連線檔案並生成PE檔案) CRTL+ALT+F5
4:Run(執行檔案) SHIFT+CRTL+F5
5:Run w/debug(除錯執行) CRTL+D 技巧:
一:通過在2,3行處下斷點,當執行到第3行命中時,看EAX中的數值,把數值貼到VS中的工具-錯誤查詢。可看出錯誤的問題是什麼。(注意是十六進位制的數)
1:invoke LoadLibrary,offset dllName
-》2:invoke GetLastError
-》3:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK OTHER:
1。選項\設定路徑:可設定相應的路徑。
2。OllyDbg中可設定OD相關路徑:選項\介面選項\目錄選項卡。 FAQ:
1.radasm中無法找到resource檔案時,是相對路徑的問題
當有資源時需要設定工程選項
工程\工程選項 4,O,$B/RC.EXE /v /I "$I",1
這樣就可以在使用rc檔案中使用相對路徑了······ 2.格式化輸出字串和數值
wsprintf,addr szBuffer,addr szStart,............ szBuffer db 256 dup (?) ;全域性變數
local @szBuffer[256]:db ;區域性變數 szStart db 'return : %d!',0 ; %d 輸出十進位制 %x輸出十六進位制 %s輸出字串, %c輸出字元,%08x,小於8位時就用0填充,%lu是輸出32位整數
invoke wsprintf,addr szBuffer,addr szStart,eax ;
szStart db 'return : %s!',0 ; 若是%s格式時就需要用 addr偽指令,因為%s接收的是一個變數的地址
invoke wsprintf,addr szBuffer,addr szStart,addr szText ;
invoke MessageBox,NULL,offset szBuffer,offset szCaption,MB_OK