Win32ASM学习[23]: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


转载于:http://www.jiangkai.net/SoftOperation/SO-radasm.htm
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值