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

易语言MASM置入代码两个字节集的带通配符功能的等于比较 (指定字节不比较,返回逻辑型)

[复制链接]
发表于 2019-10-18 15:00:00 |阅读模式

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

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

x

  1. .版本 2

  2. .程序集 程序集1

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


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

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

  7. 输出调试文本 (字节集_等于_通配符 (到字节集 (“??A??B??C”), 到字节集 (“12A34B56C”), 取代码 (“?”, )))
  8. 输出调试文本 (字节集_等于_通配符 (到字节集 (“AA****ZZ”), 到字节集 (“AA1234ZZ”), 取代码 (“*”, )))  ' AA开头ZZ结尾中间4个任意字符
  9. 输出调试文本 (字节集_等于_通配符 (到字节集 (“AA****ZZ”), 到字节集 (“AA1234ZY”), 取代码 (“*”, )))




  10. .子程序 字节集_等于_通配符, 逻辑型, 公开, 比较成立返回真,否则返回假
  11. .参数 被比较值, 字节集, , 字节集参数不得为0字节,否则将出错
  12. .参数 比较值, 字节集, , 长度必须与被比较值一致
  13. .参数 通配符, 字节型, , 被比较值取到该字节值,不与比较值比较

  14. 置入代码 ({ 83, 81, 82, 86, 87, 139, 117, 8, 139, 54, 139, 94, 4, 131, 198, 8, 139, 125, 12, 139, 63, 139, 79, 4, 131, 199, 8, 138, 85, 16, 59, 217, 117, 12, 11, 219, 116, 8, 129, 251, 0, 0, 0, 128, 114, 4, 51, 192, 235, 31, 51, 201, 235, 18, 58, 20, 49, 116, 12, 138, 52, 49, 58, 52, 57, 116, 4, 51, 192, 235, 10, 65, 59, 203, 114, 234, 184, 1, 0, 0, 0, 95, 94, 90, 89, 91, 201, 194, 12, 0 })
  15. ' push ebx
  16. ' push ecx
  17. ' push edx
  18. ' push esi
  19. ' push edi
  20. ' mov esi,[ebp+8]
  21. ' mov esi,[esi] ;字节集数据地址
  22. ' mov ebx,[esi+4] ;字节集长度
  23. ' add esi,8
  24. ' mov edi,[ebp+12]
  25. ' mov edi,[edi]
  26. ' mov ecx,[edi+4]
  27. ' add edi,8
  28. ' mov dl,[ebp+16]
  29. ' .if ebx != ecx || ebx == 0 || ebx >= 80000000H
  30. ' xor eax,eax
  31. ' jmp ASM_END
  32. ' .endif
  33. ' xor ecx,ecx
  34. ' .while ecx < ebx
  35. ' .if dl != [esi+ecx]
  36. ' mov dh,[esi+ecx]
  37. ' .if dh != [edi+ecx]
  38. ' xor eax,eax
  39. ' jmp ASM_END
  40. ' .endif
  41. ' .endif
  42. ' inc ecx
  43. ' .endw
  44. ' mov eax,1
  45. ' ASM_END:
  46. ' pop edi
  47. ' pop esi
  48. ' pop edx
  49. ' pop ecx
  50. ' pop ebx
  51. ' leave
  52. ' retn 12

  53. 返回 (假)
复制代码

相关帖子

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

本版积分规则