设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2012|回复: 0
收起左侧

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

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

  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. 返回 (返回值)


复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-27 04:14 , Processed in 1.369078 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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