汇编代码怎么换算成字节集
发布网友
发布时间:2022-04-26 15:47
我来回答
共2个回答
热心网友
时间:2023-10-12 18:06
就是汇编用的,比如OD爆破2个空指令(nop),就是 置入代码([114,114]) '114二进制就是ONP 空指令 可以用来做OD破解补丁外挂写字节集什么的
参数名称为“代码数据”,数据类型为“通用型(all)”,所处语句为“置入代码”。注明:欲置入到代码段中的机器指令码数据,可以是字节集数据或二进制文件名文本。
置入代码
置入代码是易语言核心支持库的其他命令,该命令在编译后文件代码段中当前语句位置置入指定的机器指令码数据。
英文名称:MachineCode
操作系统需求: Windows、Linux
目录• “置入代码”调用格式
• “置入代码”命令解释
• “置入代码”命令例程
“置入代码”调用格式编辑本段回目录
〈无返回值〉 置入代码 (参数<1> )
“置入代码”命令解释编辑本段回目录
参数位置参数名类 型必要性描 述
参数<1> 代码数据 通用型 必需的 欲置入到代码段中的机器指令码数据,可以是字节集数据或二进制文件名文本。
易语言中的置入代码实际上是置入X86指令的片段,置入的代码被当做机器指令执行,类似于其他语言里的嵌入汇编。置入代码实际上是将汇编代码编译成机器指令的二进制后数据。如 汇编中nop(10010000)是空操作指令,在易语言中这样表示 置入代码({144})nop 的16进制是90 而144是10进制的,也就是说易语言的置入代码是置入机器码的10进制文本。
“置入代码”命令例程编辑本段回目录
mov eax,[ebp+8];第一个参数
sub eax,dword ptr[ebp+C];第二个参数,运算结果放在eax
leave
retn 8;因为有两个参数,所以有8个字节
置入代码({139,69,8,43,69,12,201,194,8,0})
----------------------------------------------------------------------
mov eax,[ebp+8];第一个参数
sub eax,dword ptr[ebp+C];第二个参数,运算结果放在eax
leave
直接这样写也是可以的,易语言会自己在子程序结尾带上平栈. 不平栈就返回 会导致游戏崩溃。
最后的实际上省略了以下内容
mov esp,ebp
pop ebp
retn (上层参数个数x4) '4不是固定的..因为整数参数占4个字节.
实际操作中你会发现,即使retn后不跟值也是不会产生问题
热心网友
时间:2023-10-12 18:07
写字节集太能破坏文件易语言命令置汇编代码段汇编代码嵌入进检查代码否存