hackpig

经本人研究内嵌汇编不能取自定义类型(成员非4字节,取来的是对齐结构的指针,比如成员为字节型分配4个字节),和非小数和整数,文本型数组不可以取指针,其它的都可以

 

要注意的是易的子程序前有EBP入栈操作,所以要有出栈操作才行

这是我写的取整数型指针的例子(字节型,短整数型,小数型,日期时间型,双精度小数型都通用,注意参数要为参考):

.版本 2
.支持库 spec
.子程序 取整数型指针, 整数型, 公开
.参数 整数, 整数型, 参考
\'push ebp                       <------------这两句已经是易原有的
\'mov ebp, esp

置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
\' mov eax, dword ptr [ebp+08]
\' leave                           <------------赋值给ESP,从堆栈中弹出到EBP
\' ret 0004

返回 (0)


取文本指针的例子:


.版本 2
.支持库 spec
.子程序 取文本型指针, 整数型, 公开
.参数 文本, 文本型

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
\' mov eax, dword ptr [ebp+08]
\' mov eax, dword ptr [eax]
\' leave
\' ret 0004

返回 (0)


取字节集指针的例子:

.版本 2
.支持库 spec
.子程序 取字节集指针, 整数型, 公开
.参数 字节集, 字节集, 参考

置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 201, 194, 4, 0 })
\' mov eax, dword ptr [ebp+08]
\' mov eax, dword ptr [eax]
\' add eax, 00000008
\' leave
\' ret 0004

返回 (0)

分类:

技术点:

相关文章:

  • 2021-09-03
  • 2022-01-14
  • 2021-05-26
  • 2021-08-01
  • 2021-09-28
  • 2021-09-09
  • 2021-12-31
  • 2021-12-25
猜你喜欢
  • 2021-11-27
  • 2021-06-26
  • 2021-12-09
  • 2021-12-09
  • 2021-07-22
  • 2021-04-02
  • 2021-11-16
相关资源
相似解决方案