免扫码快速登录设为首页收藏本站帮助中心
查看: 15|回复: 0
收起左侧

易语言MASM置入代码将字节集(字节型数组)所有空字符(0x00)替换为空格(0x20)(无返回值)

[复制链接]
发表于 2019-11-26 16:05:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x

  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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


  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序
  8. .局部变量 字节集, 字节集
  9. .局部变量 字节型数组, 字节型, , "0"

  10. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  11. 字节集 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 0, 1, 0, 1, 0 }
  12. 字节集_空字符替换空格 (字节集)
  13. 调试输出 (字节集)
  14. 字节型数组 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 0, 1, 0, 1, 0 }
  15. 字节型数组_空字符替换空格 (字节型数组)
  16. 调试输出 (字节型数组)

  17. .子程序 字节集_空字符替换空格
  18. .参数 字节集变量, 字节集, 参考, 所有的0(0x00)替换为32(0x20)

  19. 置入代码 ({ 96, 139, 69, 8, 11, 192, 117, 2, 235, 41, 139, 0, 11, 192, 117, 2, 235, 33, 139, 88, 4, 11, 219, 117, 2, 235, 24, 131, 192, 8, 51, 201, 235, 13, 138, 20, 1, 10, 210, 117, 5, 178, 32, 136, 20, 1, 65, 59, 203, 114, 239, 97 })
  20. ' pushad
  21. ' mov eax,[ebp+8]
  22. ' .if !eax
  23. ' jmp ASM_END
  24. ' .endif
  25. ' mov eax,[eax]
  26. ' .if !eax
  27. ' jmp ASM_END
  28. ' .endif
  29. ' mov ebx,[eax+4]
  30. ' .if !ebx
  31. ' jmp ASM_END
  32. ' .endif
  33. ' add eax,8
  34. ' xor ecx,ecx
  35. ' .while ecx<ebx
  36. ' mov dl,[eax+ecx]
  37. ' .if !dl
  38. ' mov dl,32
  39. ' mov [eax+ecx],dl
  40. ' .endif
  41. ' inc ecx
  42. ' .endw
  43. ' ASM_END:
  44. ' popad


  45. .子程序 字节型数组_空字符替换空格
  46. .参数 字节型数组, 字节型, 参考 数组, 所有的0(0x00)替换为32(0x20)

  47. 置入代码 ({ 96, 139, 69, 8, 11, 192, 117, 2, 235, 41, 139, 0, 11, 192, 117, 2, 235, 33, 139, 88, 4, 11, 219, 117, 2, 235, 24, 131, 192, 8, 51, 201, 235, 13, 138, 20, 1, 10, 210, 117, 5, 178, 32, 136, 20, 1, 65, 59, 203, 114, 239, 97 })
  48. ' pushad
  49. ' mov eax,[ebp+8]
  50. ' .if !eax
  51. ' jmp ASM_END
  52. ' .endif
  53. ' mov eax,[eax]
  54. ' .if !eax
  55. ' jmp ASM_END
  56. ' .endif
  57. ' mov ebx,[eax+4]
  58. ' .if !ebx
  59. ' jmp ASM_END
  60. ' .endif
  61. ' add eax,8
  62. ' xor ecx,ecx
  63. ' .while ecx<ebx
  64. ' mov dl,[eax+ecx]
  65. ' .if !dl
  66. ' mov dl,32
  67. ' mov [eax+ecx],dl
  68. ' .endif
  69. ' inc ecx
  70. ' .endw
  71. ' ASM_END:
  72. ' popad

复制代码

回复

使用道具 举报

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

本版积分规则