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

易语言MASM置入代码 字节集数据变量异或另一个字节集数据实现差异压缩 (返回逻辑型)

[复制链接]
发表于 2020-4-21 07:54:37 | 显示全部楼层 |阅读模式

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

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

x
1.png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 A, 字节集
  9. .局部变量 B, 字节集
  10. .局部变量 文本, 文本型

  11. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  12. A = 快照 (, , )
  13. 延时 (1000)
  14. B = 快照 (, , )
  15. 文本 = “快照A压缩前大小:” + 到文本 (取字节集长度 (A))
  16. 文本 = 文本 + “快照A压缩后大小:” + 到文本 (取字节集长度 (压缩数据 (A))) + #换行符
  17. 文本 = 文本 + “快照B压缩前大小:” + 到文本 (取字节集长度 (B)) + #换行符
  18. 文本 = 文本 + “快照B压缩后大小:” + 到文本 (取字节集长度 (压缩数据 (B))) + #换行符
  19. 检查 (字节集_异或字节集 (A, B))
  20. 文本 = 文本 + “快照A数据与快照B数据异或后压缩大小:” + 到文本 (取字节集长度 (压缩数据 (A))) + #换行符
  21. 检查 (字节集_异或字节集 (A, B))
  22. 文本 = 文本 + “二次异或压缩后大小:” + 到文本 (取字节集长度 (压缩数据 (A)))
  23. 信息框 (文本, 0, , )

  24. 结束 ()


  25. .子程序 字节集_异或字节集, 逻辑型, 公开, 字节集数据异或另一个字节集数据,成功返回真,失败返回假
  26. .参数 字节集变量, 字节集, 参考, 提供字节集变量,异或结果通过此变量输出
  27. .参数 字节集, 字节集, , 长度必须与 字节集A 一致,不能为0字节,否则将失败

  28. 置入代码 ({ 83, 81, 82, 86, 139, 69, 8, 139, 93, 12, 11, 192, 116, 4, 11, 219, 117, 2, 235, 56, 139, 0, 139, 27, 11, 192, 116, 4, 11, 219, 117, 2, 235, 42, 139, 72, 4, 11, 201, 116, 5, 59, 75, 4, 116, 4, 51, 192, 235, 26, 131, 192, 8, 131, 195, 8, 51, 246, 235, 7, 138, 20, 30, 48, 20, 6, 70, 59, 241, 114, 245, 184, 1, 0, 0, 0, 94, 90, 89, 91, 201, 194, 8, 0 })
  29. ' push ebx
  30. ' push ecx
  31. ' push edx
  32. ' push esi
  33. ' mov eax,[ebp+8]
  34. ' mov ebx,[ebp+12]
  35. ' .if eax == 0 || ebx == 0
  36. ' jmp ASM_END
  37. ' .endif
  38. ' mov eax,[eax]
  39. ' mov ebx,[ebx]
  40. ' .if eax == 0 || ebx == 0
  41. ' jmp ASM_END
  42. ' .endif
  43. ' mov ecx,[eax+4]
  44. ' .if ecx == 0 || ecx != [ebx+4]
  45. ' xor eax,eax
  46. ' jmp ASM_END
  47. ' .endif
  48. ' add eax,8
  49. ' add ebx,8
  50. ' xor esi,esi
  51. ' .while esi<ecx
  52. ' mov dl,[ebx+esi]
  53. ' xor [eax+esi],dl
  54. ' inc esi
  55. ' .endw
  56. ' mov eax,1
  57. ' ASM_END:
  58. ' pop esi
  59. ' pop edx
  60. ' pop ecx
  61. ' pop ebx
  62. ' leave
  63. ' retn 8


  64. 返回 (假)

复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

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

本版积分规则