|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 文本, 文本型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 文本 = “Hello World! 中文测试”
- 置文本指针 (文本, 取变量数据地址 (文本) + 6)
- 调试输出 (“恢复前”, 文本)
- 输出调试文本 (文本数据恢复 (文本))
- 调试输出 (“恢复后”, 文本)
- .子程序 文本数据恢复, 逻辑型, 公开, 对文本数据指针地址循环减小访问,直到遇到0则修改文本指针为该指针的+1,成功返回真失败返回假。
- .参数 欲恢复的字符串, 文本型, 参考, 仅适用于被其他置入代码修改文本指针实现删除的字符串开头的一部分,不一定能找回,找回的部分可能是其他数据,向该指针写入可能会崩溃。
- 置入代码 ({ 139, 69, 8, 139, 24, 139, 211, 138, 11, 10, 201, 117, 5, 67, 137, 24, 235, 3, 75, 235, 242, 59, 218, 115, 7, 184, 1, 0, 0, 0, 235, 5, 184, 0, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' mov ebx,[eax]
- ' mov edx,ebx
- ' START:
- ' mov cl,[ebx]
- ' .if cl == 0
- ' inc ebx
- ' mov [eax],ebx
- ' jmp ASM_END
- ' .endif
- ' dec ebx
- ' JMP START
- ' ASM_END:
- ' .if ebx < edx
- ' mov eax,1
- ' .elseif
- ' mov eax,0
- ' .endif
- ' leave
- ' retn 4
- 返回 (假)
- .子程序 置文本指针, , 公开, 修改文本字符串的内存地址指针
- .参数 文本, 文本型, 参考, 文本可以为空
- .参数 指针, 整数型, , 地址必须真实有效,否则程序可能会崩溃。
- 置入代码 ({ 139, 69, 8, 139, 93, 12, 137, 24, 201, 194, 8, 0 })
- ' mov eax,[ebp+8]
- ' mov ebx,[ebp+12]
- ' mov [eax],ebx
- ' leave
- ' retn 8
复制代码
|
|