- 9
- 0
- 约 22页
- 2017-07-09 发布于湖北
- 举报
使用OllyDbg从零开始Cracking 第三十章PCODE概要1
第三十章-P-CODE-Part2
(本章CrackMe支持库MSVBVM50.DLL)
本章我们继续讨论P-CODE。
以下是我从JBDUC的教程里收集的一些操作码:
6c → ILdRf 将指定操作数压入堆栈
1b → LitStr5 将字符串压入堆栈
fb → Lead0
30 → EqStr 比较两个字符串(与Lead0配合使用)
2f → FFree1Str 释放内存空间
1a → FFree1Ad 释放内存空间
0f → VCallAd 通过虚拟机运行操作码
1c → BranchF 条件跳转指令,如果栈顶的值为false则跳转(相当于汇编指令JNE/JNZ)
1d → BranchT 条件跳转指令,如果栈顶的值为true则跳转(相当于汇编指令JE/JZ)
1e → Branch 无条件跳转(嘿嘿,相当于汇编指令JMP)
fc → Lead1
c8 → End 终止程序(与Lead1配合使用)
f3 → LitI2 将立即数压入堆栈
f4 → LitI2_Byte 将指定数据转化为字节整型并压入堆栈
70 → FStrI2 将栈顶的WORD型元素保存到内存单元中,然后执行出栈操作
6b → FLdI2 将WORD型参数压入堆栈
a9 → AddI2 栈顶两个WORD型元素相加,相加的结果置于栈顶
ad → SubI2 栈顶两个WORD型元素相减,相减的结果置
原创力文档

文档评论(0)