设为首页收藏本站帮助中心
查看: 5566|回复: 11
收起左侧

易语言置入代码实现动态取DLL指针并调用的方法 取时间+信息框 Win10/XP 已测试通过

[复制链接]
发表于 2018-10-16 21:33:38 | 显示全部楼层 |阅读模式
本帖最后由 CNWTEPRG 于 2018-10-16 21:43 编辑

1.png
2.png
3.png

  1. .版本 2

  2. .程序集 汇编动态调用DLL, , , Win10/XP 已测试通过
  3. .程序集变量 Kernel32基址, 整数型
  4. .程序集变量 GetProcAddress函数指针, 子程序指针
  5. .程序集变量 LoadLibraryA函数指针, 子程序指针
  6. .程序集变量 空白指针, 子程序指针

  7. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码

  8. Kernel32基址 = 取Kernel32基址 ()
  9. GetProcAddress函数指针 = 取GetProcAddress函数指针 (Kernel32基址)
  10. LoadLibraryA函数指针 = 取Kernel32函数指针 (“LoadLibraryA”)
  11. .如果真 (LoadLibraryA函数指针 = 空白指针)
  12.     信息框 (“取LoadLibraryA函数指针失败!”, 16, , )
  13.     返回 (0)
  14. .如果真结束
  15. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  16. 返回 (0)  ' 可以根据您的需要返回任意数值

  17. .子程序 _临时子程序
  18. .局部变量 信息框指针, 子程序指针
  19. .局部变量 字节集, 字节集
  20. .局部变量 时间指针, 子程序指针
  21. .局部变量 信息框标题, 文本型
  22. .局部变量 信息框内容, 文本型
  23. .局部变量 索引, 整数型
  24. .局部变量 计数, 整数型
  25. .局部变量 d, 短整数型, , "8"

  26. 信息框指针 = 取DLL指针 (“user32”, “MessageBoxA”)
  27. 时间指针 = 取Kernel32函数指针 (“GetLocalTime”)
  28. 字节集 = 取空白字节集 (16)
  29. 调用指针 (时间指针, 取字节集指针 (字节集))
  30. 索引 = 1
  31. .计次循环首 (8, 计数)
  32.     d [计数] = 取字节集数据 (字节集, #短整数型, 索引)
  33. .计次循环尾 ()
  34. 信息框内容 = “今天是” + 到文本 (d [1]) + “年” + 到文本 (d [2]) + “月” + 到文本 (d [4]) + “日 星期” + 到文本 (d [3]) + “ ” + 到文本 (d [5]) + “时” + 到文本 (d [6]) + “分” + 到文本 (d [7]) + “秒 ” + 到文本 (d [8]) + “毫秒”
  35. 信息框标题 = “系统时间”
  36. 调用指针 (信息框指针, 0, 取文本指针 (信息框内容), 取文本指针 (信息框标题), #确认钮)


  37. .子程序 取Kernel32基址, 整数型

  38. 置入代码 ({ 100, 161, 48, 0, 0, 0, 139, 64, 12, 139, 112, 28, 173, 139, 64, 8, 201, 195 })
  39. 返回 (0)

  40. .子程序 取Kernel32函数指针, 子程序指针
  41. .参数 函数名, 文本型, , 函数名区分大小写

  42. 返回 (到指针 (调用指针 (GetProcAddress函数指针, Kernel32基址, 取文本指针 (函数名))))


  43. .子程序 取GetProcAddress函数指针, 子程序指针
  44. .参数 基址, 整数型

  45. 置入代码 ({ 139, 69, 8, 232, 4, 0, 0, 0, 201, 194, 4, 0, 83, 81, 82, 86, 139, 216, 139, 67, 60, 3, 195, 139, 64, 120, 3, 195, 139, 80, 32, 3, 211, 51, 201, 139, 52, 138, 3, 243, 65, 128, 62, 71, 117, 245, 128, 126, 3, 80, 117, 239, 128, 126, 7, 65, 117, 233, 128, 126, 14, 0, 117, 227, 73, 139, 80, 36, 3, 211, 102, 139, 12, 74, 139, 80, 28, 3, 211, 139, 52, 138, 3, 243, 139, 198, 94, 90, 89, 91, 195 })
  46. 返回 (空白指针)



  47. .子程序 调用指针, 整数型
  48. .参数 指针地址, 子程序指针
  49. .参数 参数1, 整数型, 可空
  50. .参数 参数2, 整数型, 可空
  51. .参数 参数3, 整数型, 可空
  52. .参数 参数4, 整数型, 可空
  53. .参数 参数5, 整数型, 可空
  54. .参数 参数6, 整数型, 可空
  55. .参数 参数7, 整数型, 可空
  56. .参数 参数8, 整数型, 可空
  57. .参数 参数9, 整数型, 可空
  58. .参数 参数10, 整数型, 可空
  59. .参数 参数11, 整数型, 可空
  60. .参数 参数12, 整数型, 可空
  61. .参数 参数13, 整数型, 可空
  62. .参数 参数14, 整数型, 可空
  63. .参数 参数15, 整数型, 可空

  64. 置入代码 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })
  65. 返回 (0)

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

  68. 置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
  69. 返回 (0)

  70. .子程序 到指针, 子程序指针
  71. .参数 指针, 整数型

  72. 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
  73. 返回 (空白指针)

  74. .子程序 取DLL指针, 子程序指针, 公开
  75. .参数 库名, 文本型, , 库名不区分大小写
  76. .参数 函数名, 文本型, , 函数名区分大小写

  77. 返回 (到指针 (调用指针 (GetProcAddress函数指针, 调用指针 (LoadLibraryA函数指针, 取文本指针 (库名)), 取文本指针 (函数名))))


  78. .子程序 取字节集指针, 整数型
  79. .参数 数据, 字节集

  80. 置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 201, 194, 4, 0 })
  81. 返回 (0)
复制代码

评分

1

查看全部评分

相关帖子

回复

使用道具 举报

发表于 2020-7-3 22:50:38 | 显示全部楼层

win7取消了 LoadLibraryA函数,所以就不能用
回复 支持 反对

使用道具 举报

发表于 2018-10-19 11:38:41 | 显示全部楼层
Cute 发表于 2018-10-16 22:29
沙发前来凑个积分...

这么多了还..
回复 支持 反对

使用道具 举报

发表于 2018-10-16 22:29:18 | 显示全部楼层
沙发前来凑个积分...
回复 支持 反对

使用道具 举报

发表于 2018-10-16 23:55:08 | 显示全部楼层
板凳来占个位置
回复 支持 反对

使用道具 举报

发表于 2018-10-17 09:16:56 | 显示全部楼层
来看看咋整的
回复 支持 反对

使用道具 举报

发表于 2018-10-17 13:37:06 | 显示全部楼层
看看咋整的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则