当前位置:网站首页>Lyscripttools extended script module
Lyscripttools extended script module
2022-07-23 20:27:00 【51CTO】
LyScriptTools The module is a x64dbg The expansion pack, , This module is mainly for built-in Script Class version encapsulation of script commands , So that users can easily call x64dbg Built in script commands in , The packaging principle utilizes LyScript Module run_command_exec() Command implemented , All the following command encapsulation is around this API Functionally progressive .
The plug-in needs to be installed with LyScript32/64 Install another one on the package LyScriptTools32/64 Expansion pack, , The package has been submitted to pypi Official warehouse .
- Installation only needs to be performed
pip install LyScriptTools32perhapspip install LyScriptTools64
<br>
<b> as follows x64dbg General functions collated from (Ibinary):</b><a rel=“nofollow” href=“ https://www.cnblogs.com/iBinary/p/16359195.html”> https://www.cnblogs.com/iBinary/p/16359195.html</a>
<br>
The plug-in is currently divided into four parts , among LyScriptModule It is a package for module operation ,LyScriptMemory Memory encapsulation ,LyScriptDisassemble It is disassembly encapsulation ,LyScriptOther It's some miscellaneous .
<b>from LyScriptTools32 import LyScriptModule</b>
mod.party(addr) —> Get the mode number of the module , addr = 0 User module ,1 Is the system module
mod.base(addr) —> Get module base address
mod.size(addr) —> Return module size
mod.hash(addr) —> Return module hash
mod.entry(addr) —> Return to module entry
mod.system(addr)—> If addr If it is a system module, it is true Otherwise it would be false
mod.user(addr) —> If it is a user module, return true Otherwise false
mod.main() —> Return the base address of the main module
mod.rva(addr) —> If addr If it is not in the module, it returns 0, Otherwise return to addr Located in RVA The offset
mod.offset(addr)—> Get the file offset corresponding to the address , If it is not in the module, it returns 0
mod.isexport(addr) —> Determine whether the address is a function exported from the module ,true yes false It is not
<b>from LyScriptTools32 import LyScriptMemory</b>
mem.valid(addr) Judge addr Whether it works , Valid returns True
mem.base(addr) Or the current addr The base of
mem.size(addr) Get current addr Memory size
mem.iscode(addr) Judge the present addr Whether it is an executable page , Successfully returns TRUE
mem.decodepointer(ptr) Decryption pointer , Equivalent to calling API. DecodePointer ptr
ReadByte(addr / reg); from addr Or read a byte of memory from the register and return
Byte(addr) byte(addr) ditto
ReadWord(addr) Word(addr) word(addr) ditto Read two bytes
ReadDDword(addr) Dword(addr) dword(addr) ditto Read four bytes
ReadQword(addr) Qword(addr) qword(addr) ditto Read 8 Bytes , But it can only be 64 Bit program can be used
ReadPtr(addr) Read pointer from address (4/8 byte ) And return the read pointer value
ReadPointer(addr) ptr(addr) Pointer(addr) pointer(addr) Same as above
ptr(mod.main()) --> 00905A4D
byte(mod.main()) --> 0x0000004D
<b>from LyScriptTools32 import LyScriptDisassemble</b>
dis.len(addr) obtain addr Instruction length at .
dis.iscond(addr) Judge the present addr Whether the position is a conditional instruction ( such as jxx) Return value : If yes True otherwise False
dis.isbranch(addr) Determine whether the current address is a branch instruction Return value : ditto
dis.isret(addr) Judge whether it is ret Instructions Return value : ditto
dis.iscall(addr) Judge whether it is call Instructions Return value : ditto
dis.ismem(addr) Determine whether it is a memory operand Return value : ditto
dis.isnop(addr) Judge whether it is nop Return value : ditto
dis.isunusual(addr) Judge whether the current address indicates an abnormal address Return value : ditto
dis.branchdest(addr): The branch target of the instruction is located at ( If the Enter key , What it will follow ).addr
dis.branchexec(addr): If Branch at To execute , Then for true.addr
dis.imm(addr) Get the immediate number of the current instruction location ( The immediate number appearing in this line of instructions )
dis.brtrue(addr): Instruction in Branch target of .addr
dis.brfalse(addr): The address of the next instruction ( If the command at Is a conditional branch ).addr
dis.next(addr): obtain addr Next address
dis.prev(addr): obtain addr Previous low address
dis.iscallsystem(addr) Determine whether the current instruction is a system module instruction
dis.mnemonic(addr) return addr Mnemonic symbol of , It can be used as a parameter to The string function uses straddrstr.streq(dis.mnemonic(cip), “cpuid”)
<b>from LyScriptTools32 import LyScriptOther</b>
arg.get(index); Get the number of parameters in the current function stack , Suppose the return address is on the stack , And we are inside the function .
arg.set(index,value); The value of the set index position is
ex.firstchance(): Whether the last exception is the first chance exception .
ex.addr(): The last exception address . for example , The address of the instruction that caused the exception .
ex.code(): The last exception code .
ex.flags(): The last exception flag .
ex.infocount(): Last exception information count ( Number of parameters ).
ex.info(index): The last exception message , If the index is out of range , It's zero .
The above is some common function encapsulation , Their calling method is shown below .
Of course, if you think the above general functions are not enough , Or there is no comprehensive supplement , You can call any class ot.GetScriptValue() The function encapsulates and implements itself .
边栏推荐
猜你喜欢

Leetcode 238. product of arrays other than itself

选择大于努力!贵阳校区小哥哥0基础成功转行软件测试收获12K!

2022DASCTF MAY

Osgearth2.8 compiling silvering cloud effect

EXCEL的密码相关

Leetcode 219. duplicate Element II exists (yes, resolved)

I deliberately leave a loophole in the code. Is it illegal?

【ASP.NET Core】选项模式的相关接口

【C语言】通讯录(静态版本)

QT下assimp库的模型加载
随机推荐
新品上市|A股场内衍生品大盘点
phar反序列化
Failure after reinstalling the system (error: Reboot and select proper boot device or insert boot media in selected boot device)
Excel自动化之13种方法来避免在 Microsoft Excel 中重复任务
Phar deserialization
Non local mean filtering / attention mechanism
ant接口用什么天线_电视后面有个接口写的是 标准ANT 75 欧输入,请问是什么意思,是天线吗?可不可以接闭路线啊?…「建议收藏」
The numerical sequence caused by the PostgreSQL sequence cache parameter is discontinuous with interval gap
Drools(1):Drools简介
QT With OpenGL(帧缓存篇)
非局部均值滤波(NON-LOCAL-mean)/注意力机制
[development experience] development project trample pit collection [continuous update]
牛客C基础题练习
Atelier macoll - notes de développement de la secte de l'ours 2
What if there is no word document in win11? There is no word document solution tutorial in win11
AtCoder——Subtree K-th Max
Applet avatar group style
2022山东养老展,中国国际养老服务业展览会,济南老龄产业展
21. Mix in details
Prepare for pressure test with JMeter and visualvw