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

易语言MASM置入代码字节集数据的URL编码解码PHP的urlencode()函数算法1.0(返回文本型)

[复制链接]
发表于 2019-9-2 08:02:59 | 显示全部楼层 |阅读模式

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

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

x

  1. .版本 2

  2. .程序集 程序集1

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


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

  6. .子程序 _临时子程序

  7. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  8. 输出调试文本 (URL编码1 (到字节集 (“Hello World!中文测试”), 真))


  9. .子程序 URL编码1, 文本型, 公开, 与PHP的 urlencode() 函数功能相同 (全编码)
  10. .参数 数据, 字节集
  11. .参数 大写, 逻辑型, 可空
  12. .局部变量 文本长度, 整数型
  13. .局部变量 返回值, 文本型

  14. 文本长度 = 0
  15. 置入代码 ({ 80, 139, 69, 8, 139, 0, 139, 64, 4, 107, 192, 3, 137, 69, 252, 88 })
  16. ' push eax
  17. ' mov eax,[ebp+8]
  18. ' mov eax,[eax]
  19. ' mov eax,[eax+4]
  20. ' imul eax,3
  21. ' mov [ebp-4],eax
  22. ' pop eax
  23. 返回值 = 取空白文本 (文本长度)
  24. 置入代码 ({ 235, 31, 128, 227, 15, 128, 251, 0, 114, 10, 128, 251, 9, 119, 5, 128, 195, 48, 235, 12, 10, 246, 116, 5, 128, 195, 55, 235, 3, 128, 195, 87, 195, 80, 83, 81, 82, 86, 87, 139, 117, 8, 138, 117, 12, 128, 230, 1, 139, 54, 139, 126, 4, 131, 198, 8, 51, 201, 139, 69, 248, 235, 34, 178, 37, 136, 16, 138, 20, 49, 138, 218, 192, 235, 4, 232, 178, 255, 255, 255, 136, 88, 1, 138, 218, 232, 168, 255, 255, 255, 136, 88, 2, 65, 131, 192, 3, 59, 207, 114, 218, 95, 94, 90, 89, 91, 88 })
  25. ' jmp MAIN
  26. ' DEC2HEX:
  27. ' AND BL,0FH
  28. ' .if BL >=0 && BL <=9
  29. ' ADD BL,30H
  30. ' .else
  31. ' .if DH
  32. ' ADD BL,37H
  33. ' .elseif
  34. ' ADD BL,57H
  35. ' .endif
  36. ' .endif
  37. ' ret
  38. ' MAIN:
  39. ' push eax
  40. ' push ebx
  41. ' push ecx
  42. ' push edx
  43. ' push esi
  44. ' push edi
  45. ' mov esi,[ebp+8]
  46. ' mov dh,[ebp+12]
  47. ' and dh,1
  48. ' mov esi,[esi]
  49. ' mov edi,[esi+4]
  50. ' add esi,8
  51. ' xor ecx,ecx
  52. ' mov eax,[ebp-8]
  53. ' .while ecx < edi
  54. ' mov dl,"%"
  55. ' mov [eax],dl
  56. ' mov dl,[esi+ecx]
  57. ' mov bl,dl
  58. ' shr bl,4
  59. ' call DEC2HEX
  60. ' mov [eax+1],bl
  61. ' mov bl,dl
  62. ' call DEC2HEX
  63. ' mov [eax+2],bl
  64. ' inc ecx
  65. ' add eax,3
  66. ' .endw
  67. ' pop edi
  68. ' pop esi
  69. ' pop edx
  70. ' pop ecx
  71. ' pop ebx
  72. ' pop eax


  73. 返回 (返回值)


复制代码

相关帖子

回复

使用道具 举报

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

本版积分规则