首页
社区
课程
招聘
[原创]第一题作答
发表于: 2008-10-4 00:44 2599

[原创]第一题作答

2008-10-4 00:44
2599
修改步骤:
1. 修改输入表,加入shell32.dll中的ShellExcuteA函数.
2. 增加输出表,增加OpenUrlA输出函数.
3. 添加OpenUrlA函数代码(如下):
.text:004010D0                 push    5               ; nShowCmd
.text:004010D2                 push    0               ; lpDirectory
.text:004010D4                 push    offset Parameters ; "http://bbs.pediy.com"
.text:004010D9                 push    offset File     ; "IEXPLORE"
.text:004010DE                 push    offset Operation ; "open"
.text:004010E3                 push    0               ; hwnd
.text:004010E5                 call    ds:ShellExecuteA
.text:004010EB                 retn

自己是初学,实在不知道这样把代码压缩到13个字节以下,做成这样都花了点时间
不求拿个高分,重在参与

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还有个增加重定位的信息的步骤忘说了
2008-10-4 21:30
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
3
OpenUrlA 函数大小 = 28 字节
附件提交次数 = 1
得分 = min[1.0, 13/28]x100 - (1 -1 )x5 = 46.428571

-------------
003F10D0   . 6A 05          push    5                                ; /IsShown = 5
003F10D2   . 6A 00          push    0                                ; |DefDir = NULL
003F10D4   . 68 70303F00    push    pediy.003F3070                   ; |Parameters = "http://bbs.pediy.com"
003F10D9   . 68 88303F00    push    pediy.003F3088                   ; |FileName = "IEXPLORE"
003F10DE   . 68 68303F00    push    pediy.003F3068                   ; |Operation = "open"
003F10E3   . 6A 00          push    0                                ; |hWnd = NULL
003F10E5   . FF15 E4203F00  call    near [<&SHELL32.ShellExecuteA>]  ; \ShellExecuteA
003F10EB   . C3             retn

不错,呵呵,要是用其他短参数api就会短了
2008-10-5 15:16
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是啊
MSDN里ShellExcute和ShellExcuteEx是连在一起的
自己没去看ShellExcuteEx的说明 想着Ex后缀的参数会更多,结果...
2008-10-5 15:45
0
游客
登录 | 注册 方可回帖
返回
//