易语言安全CALL例子
.版本 2 .支持库 spec .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 信息框 (Call (到整数 (&Bug子程序)), 0, “Ret”, ) .子程序 Bug子程序, 整数型 写到内存 (“PPW是全宇宙最强大的编程语言! -鲁迅”, 10086, ) 信息框 (1, 0, , ) 写到内存 (-1, -1, ) 信息框 (2, 0, , ) 返回 (10086) .子程序 Call, 整数型, , 安全CALL,出错不会死翘翘 -小路(QQ:377343266) .参数 子程序指针, 通用型 .参数 参数1, 通用型, 可空 .参数 参数2, 通用型, 可空 .参数 参数3, 通用型, 可空 .参数 参数4, 通用型, 可空 .参数 参数5, 通用型, 可空 .参数 参数6, 通用型, 可空 .参数 参数7, 通用型, 可空 .参数 参数8, 通用型, 可空 .参数 参数9, 通用型, 可空 .参数 参数10, 通用型, 可空 .参数 参数11, 通用型, 可空 .参数 参数12, 通用型, 可空 .参数 参数13, 通用型, 可空 .参数 参数14, 通用型, 可空 .参数 参数15, 通用型, 可空 .局部变量 变量, 整数型 置入代码 ({ 139, 69, 8, 137, 69, 252 }) .如果真 (IsBadCodePtr (变量)) 返回 (-1) .如果真结束 变量 = 到整数 (&Error) 置入代码 ({ 255, 181, 252, 255, 255, 255, 100, 255, 53, 0, 0, 0, 0, 100, 137, 37, 0, 0, 0, 0, 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0, 100, 143, 5, 0, 0, 0, 0, 131, 196, 4 }) 返回 (0) .子程序 Error, 逻辑型, , 返回真结束程序 .参数 参数1, 整数型 .参数 参数2, 整数型 .参数 参数3, 整数型 .参数 参数4, 整数型 .判断开始 (读整数 (参数1 + 20) = 1) 调试 (“欲写入地址: ” + 到文本 (读整数 (参数1 + 24))) .默认 调试 (“欲读取地址: ” + 到文本 (读整数 (参数1 + 24))) .判断结束 .如果真 (参数3 > 0) 写整数 (参数3 + 184, 读整数 (参数3 + 184) + 1) .如果真结束 返回 (假) .子程序 调试 .参数 信息, 文本型 调试信息 (信息) 调试输出 (信息) .子程序 读整数, 整数型 .参数 指针, 整数型 置入代码 ({ 139, 69, 8, 139, 0, 201, 195 }) 返回 (0) .子程序 写整数 .参数 指针, 整数型 .参数 写入值, 整数型 置入代码 ({ 139, 68, 36, 8, 82, 139, 84, 36, 16, 137, 16, 90, 139, 229, 93, 194, 8, 0 })
置入代码 ({ 139, 133, 8, 0, 0, 0, 137, 69, 252 })