找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6224|回复: 2

[开源] 【开源】动态调用子程序的机器码

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-9-14 15:14:58 | 显示全部楼层 |阅读模式

.版本 2

.子程序 _按钮1_被单击
.局部变量 DLL模块句柄, 整数型
.局部变量 GetWindowTextA函数地址, 整数型
.局部变量 标题文本, 文本型
.局部变量 文本指针, 整数型

DLL模块句柄 = 载入动态链接库_ (“user32.dll”)
.如果 (DLL模块句柄 ≠ 0)

    GetWindowTextA函数地址 = 取程序地址_ (DLL模块句柄, “GetWindowTextA”)
    .如果 (GetWindowTextA函数地址 ≠ 0)
        标题文本 = 取空白文本 (100)  ' 缓冲区大小为100
        文本指针 = 取文本型指针 (标题文本)  ' 文本参数和字节集参数,不能直接代入,需要取指针
        动态执行取窗口标题 (GetWindowTextA函数地址, 取窗口句柄 (), 文本指针, 100)
        信息框 (标题文本, #信息图标, “当前窗口标题”)

    .否则
        信息框 (“DLL中没有这个函数”, 0, )
    .如果结束

    释放动态链接库_ (DLL模块句柄)
.否则
    信息框 (“载入DLL失败”, 0, )
.如果结束


.子程序 动态执行取窗口标题, 整数型
.参数 函数地址, 整数型, , 函数地址必须为第一个参数,调用时会重新调整参数排列的,后面的参数与API声明一样了
.参数 窗口句柄, 整数型, , 欲获取文字的那个窗口的句柄
.参数 缓冲区指针, 整数型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
.参数 缓冲尺寸, 整数型, , lp缓冲区的长度;

' push ebp                       <------------这两句已经是易原有的
' mov ebp, esp
置入代码 ({ 139, 69, 8, 139, 93, 4, 137, 93, 8, 93, 91, 255, 224 })
' mov eax, dword ptr [ebp+08] 取得第一个参数的函数地址
' mov ebx, dword ptr [ebp+04] 取得返回地址
' mov dword ptr [ebp+08], ebx  修改返回地址
' pop ebp
' pop ebx 平栈,去掉第一个参数
' jmp eax 跳到函数地址
返回 (0)

.子程序 取文本型指针, 整数型
.参数 文本, 文本型

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' leave
' ret 0004
返回 (0)

.子程序 取字节集指针, 整数型, , 单维数组也可以用这个代码
.参数 字节集, 字节集

置入代码 ({ 139, 69, 8, 139, 0, 133, 192, 15, 132, 3, 0, 0, 0, 131, 192, 8, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' test eax, eax
' je 00000003
' add eax, 00000008
' leave
' ret 0004
返回 (0)

ZOmN1FlQ.rar (2.27 KB, 下载次数: 23269)


【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-9-15 13:46:16 | 显示全部楼层

易语言越来越强大了啊.

 

也许真有一天会农村包围城市..........

我就是嗷嗷叫的老马了......

0

主题

24

回帖

0

精华

铜牌会员

积分
52
发表于 2010-9-18 19:18:29 | 显示全部楼层
不错,好东西还是蛮多的!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表