当前位置:网站首页>LyScriptTools 扩展Script模块
LyScriptTools 扩展Script模块
2022-07-23 19:46:00 【51CTO】
LyScriptTools模块是一个x64dbg的扩展包,该模块主要针对内置Script脚本命令的类版封装,使得用户可以方便的调用x64dbg中的内置脚本命令,该封装原理是利用了LyScript模块中的run_command_exec()命令实现的,如下所有的命令封装都是围绕这个API函数进行的。
该插件需要在安装有LyScript32/64包之上再安装一个LyScriptTools32/64扩展包,该包已经提交到pypi官方仓库。
- 安装只需要执行
pip install LyScriptTools32或者pip install LyScriptTools64
<br>
<b>如下x64dbg通用函数整理自(Ibinary):</b><a rel=“nofollow” href=“ https://www.cnblogs.com/iBinary/p/16359195.html”> https://www.cnblogs.com/iBinary/p/16359195.html</a>
<br>
插件目前分为四部分,其中LyScriptModule是针对模块操作的封装,LyScriptMemory是内存封装,LyScriptDisassemble是反汇编封装,LyScriptOther是一些杂类。
<b>from LyScriptTools32 import LyScriptModule</b>
mod.party(addr) —> 获取模块的模式编号, addr = 0则是用户模块,1则是系统模块
mod.base(addr) —> 获取模块基址
mod.size(addr) —> 返回模块大小
mod.hash(addr) —> 返回模块hash
mod.entry(addr) —> 返回模块入口
mod.system(addr)—> 如果addr是系统模块则为true否则则是false
mod.user(addr) —> 如果是用户模块则返回true 否则为false
mod.main() —> 返回主模块基地址
mod.rva(addr) —> 如果addr不在模块则返回0,否则返回 addr所位于模块的 RVA偏移
mod.offset(addr)—> 获取地址所对应的文件偏移量,如果不在模块则返回0
mod.isexport(addr) —> 判断该地址是否是从模块导出的函数,true是 false则不是
<b>from LyScriptTools32 import LyScriptMemory</b>
mem.valid(addr) 判断addr是否有效,有效则返回True
mem.base(addr) 或者当前addr的基址
mem.size(addr) 获取当前addr内存的大小
mem.iscode(addr) 判断当前 addr是否是可执行页面,成功返回TRUE
mem.decodepointer(ptr) 解密指针,相当于调用了API. DecodePointer ptr
ReadByte(addr / reg); 从addr或者寄存器中读取一个字节内存并且返回
Byte(addr) byte(addr) 同上
ReadWord(addr) Word(addr) word(addr) 同上 读取两个字节
ReadDDword(addr) Dword(addr) dword(addr) 同上 读取四个字节
ReadQword(addr) Qword(addr) qword(addr) 同上 读取8个字节,但是只能是64位程序方可使用
ReadPtr(addr) 从地址中读取指针(4/8字节)并返回读取的指针值
ReadPointer(addr) ptr(addr) Pointer(addr) pointer(addr) 都同上
ptr(mod.main()) --> 00905A4D
byte(mod.main()) --> 0x0000004D
<b>from LyScriptTools32 import LyScriptDisassemble</b>
dis.len(addr) 获取addr处的指令长度。
dis.iscond(addr) 判断当前addr位置是否是条件指令(比如jxx) 返回值: 是的话True 否则False
dis.isbranch(addr) 判断当前地址是否是分支指令 返回值: 同上
dis.isret(addr) 判断是否是ret指令 返回值: 同上
dis.iscall(addr) 判断是否是call指令 返回值: 同上
dis.ismem(addr) 判断是否是内存操作数 返回值: 同上
dis.isnop(addr) 判断是否是nop 返回值: 同上
dis.isunusual(addr)判断当前地址是否指示为异常地址 返回值: 同上
dis.branchdest(addr):将指令的分支目标位于(如果按 Enter 键,它将遵循什么)。addr
dis.branchexec(addr):如果 分支 at 要执行,则为 true。addr
dis.imm(addr) 获取当前指令位置的立即数(这一行指令中出现的立即数)
dis.brtrue(addr):指令在 的分支目标。addr
dis.brfalse(addr):下一条指令的地址(如果指令 at 是条件分支)。addr
dis.next(addr): 获取addr的下一条地址
dis.prev(addr): 获取addr上一条低地址
dis.iscallsystem(addr) 判断当前指令是否是系统模块指令
dis.mnemonic(addr)返回addr的助记符号,可以当作参数给 字符串函数使用 straddrstr.streq(dis.mnemonic(cip), “cpuid”)
<b>from LyScriptTools32 import LyScriptOther</b>
arg.get(index); 获取当前函数堆栈中的第几个参数,假设返回地址在堆栈上,并且我们在函数内部.
arg.set(index,value);设置的索引位置的值为
ex.firstchance():最后一个异常是否为第一次机会异常。
ex.addr():最后一个异常地址。例如,导致异常的指令的地址。
ex.code():最后一个异常代码。
ex.flags():最后一个异常标志。
ex.infocount():上次异常信息计数(参数数)。
ex.info(index):最后一个异常信息,如果索引超出范围,则为零。
如上是一些常用的函数封装,他们的调用方式如下面所示。
当然如果你觉得上面这些通用函数不够用,或者没有补充全面,你完全可以调用任意类内的ot.GetScriptValue()函数自己去封装实现。
边栏推荐
- What if there is no word document in win11? There is no word document solution tutorial in win11
- AtCoder B - Pizza
- Odrive application 6 encoder
- New product listing | A-share floor derivatives market point
- 2022 Shandong old age Expo, Shandong elderly care exhibition, China International elderly care service industry exhibition was held in September
- 2022山东养老展,中国国际养老服务业展览会,济南老龄产业展
- 能量原理與變分法筆記19:最小餘能原理+可能功原理
- 20.ref与props
- How to add to-do items for win11 widgets? Win11 method of adding to-do widget
- 梅科爾工作室-小熊派開發筆記2
猜你喜欢
随机推荐
关于网段CIDR的笔记
osgearth使用sundog公司的triton海洋和silverlining云彩效果
Failure after reinstalling the system (error: Reboot and select proper boot device or insert boot media in selected boot device)
121. 买卖股票的最佳时机
2022上半年中国十大收缩行业
使用多态时,判断能否向下转型的两种思路
梅科尔工作室-华为14天鸿蒙设备开发实战笔记五
Leetcode 216. combined sum III
20.ref与props
重装系统后故障(报错:reboot and select proper boot deviceor insert boot media in selected boot device)
梅科尔工作室-华为14天鸿蒙设备开发实战笔记六
2022 the fourth China International elderly care service industry exhibition was held in Jinan on September 26
phar反序列化
I deliberately leave a loophole in the code. Is it illegal?
2022 Shandong old age Expo, Shandong elderly care exhibition, China International elderly care service industry exhibition was held in September
2022/7/22 训练日志
What antenna is used for ant interface_ There is an interface at the back of the TV that says standard ant 75 Euro input. What does it mean, antenna? Can you connect the closed route "Suggested collec
设置ASP.NET MVC站点默认页为指定页面
ant接口用什么天线_电视后面有个接口写的是 标准ANT 75 欧输入,请问是什么意思,是天线吗?可不可以接闭路线啊?…「建议收藏」
数组——704. 二分查找



![[ar learning] - II. Environment construction](/img/e8/c20de6a46ef70b6eb49684d685e4cd.png)



![[激光器原理与应用-8]: 激光器电路的电磁兼容性EMC设计](/img/98/8b7a4fc3f9ef9b7e16c63a8c225b02.png)

