Win32ASM学习[23]:RadASM快捷键
?RadASM快鍵操作
一.書簽
SHIFT+F8為所在行下書簽或刪除書簽(Crtl+0-9能定義存于文件中的10個書簽),
可通過編輯\書簽\開關(guān)書簽。(CRTL+F8為下一書簽,F8為上一書簽)
二、列選擇:
拉框時用到,CRTL+B為切換行&列 拉框。
三、展開 & 關(guān)閉模塊 & 顯示行號:
CRTL+E為展開和關(guān)閉模塊,在左下腳2 & 3小按鈕是展開全部和關(guān)閉全部的方式,1是顯示行號。
四、顯示API的函數(shù)原型:
當(dāng)光標碰到一個函數(shù)名稱時,可顯示一個函數(shù)的原型,用視圖\信息工具打開即可。
五、輸出窗口:
可通過視圖\輸出窗口或點擊標題欄上的圖標即可。
六、全屏顯示:
通過CRTL+W切換。
七、鎖定文件:
在文件樹中,可鼠標右鍵鎖定&解鎖文件。
八、新建項目:
當(dāng)創(chuàng)建一個項目時,可通過向?qū)У牡箶?shù)第2步會出現(xiàn)“導(dǎo)入”按鈕,來導(dǎo)入已有的文件(如圖標等),然后在文件組中,右鍵\導(dǎo)入\文件即可,可通過工程組(右鍵文件樹)對文件進行分類。
九:設(shè)置工程的保存位置 & 文件關(guān)聯(lián):
設(shè)置工程的保存位置:通過選項\設(shè)置路徑Projects ,文件關(guān)聯(lián):在文件夾選項\文件類型選項卡里設(shè)置(關(guān)聯(lián).asm和.rap)
十:斷點設(shè)置:(程序運行時才會起作用CRTL+SHIFT+F5)
A:在工程選項中把“發(fā)行”改成“調(diào)試”
B:在文件定義的最后加上 include C:\RadASM\Masm\Inc\RADbg.inc
C:ALT+F8為設(shè)置&清除斷點,通過編輯\斷點可全部清除斷點
D:當(dāng)斷點沒有反映時可能是沒有F5重新編譯或者是LINK時依賴的資源文件不存在造成的(通過工程選項中可設(shè)置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(調(diào)試運行):0,0,"$E\OllyDbg",5(5代表調(diào)試運行的文件名)
生成PE文件的順序:
1:Compile(編譯資源文件) SHIFT+F5
2:Assembly(匯編asm為機器碼) F5
3:Link(連接文件并生成PE文件) CRTL+ALT+F5
4:Run(運行文件) SHIFT+CRTL+F5
5:Run w/debug(調(diào)試運行) CRTL+D
技巧:
一:通過在2,3行處下斷點,當(dāng)執(zhí)行到第3行命中時,看EAX中的數(shù)值,把數(shù)值貼到VS中的工具-錯誤查找。可看出錯誤的問題是什么。(注意是十六進制的數(shù))
1:invoke LoadLibrary,offset dllName
-》2:invoke GetLastError
-》3:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
OTHER:
1。選項\設(shè)置路徑:可設(shè)置相應(yīng)的路徑。
2。OllyDbg中可設(shè)置OD相關(guān)路徑:選項\界面選項\目錄選項卡。
FAQ:
1.radasm中無法找到resource文件時,是相對路徑的問題
當(dāng)有資源時需要設(shè)置工程選項
工程\工程選項 4,O,$B/RC.EXE /v /I "$I",1
這樣就可以在使用rc文件中使用相對路徑了······
2.格式化輸出字符串和數(shù)值
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位整數(shù)
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
轉(zhuǎn)載于:http://www.jiangkai.net/SoftOperation/SO-radasm.htm
總結(jié)
以上是生活随笔為你收集整理的Win32ASM学习[23]:RadASM快捷键的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精装修大概多少钱啊?
- 下一篇: 颐和园小孩没带身份证可以买票吗