Nanocode的插件开发(一)

什么是Nanocode

Nanocode是一款非常好用的调试器,界面友好且功(随)能(意)丰(调)富(教),前几天我用Nanocode调试DLL装载函数时想着能不能整一个自动显示地址链表的功能,于是就动手了,以下是全过程:

1.安装pykd

Nanocode支持python并兼容windbg,我们可以用py写这个小插件
pip3 install pykd,然后把https://githomelab.ru/pykd/pykd-extreleasex64下的pykd.dll拷贝到Nonocode/exts下然后启动即可。
注意:像更换解释器可以使用!select version命令

2.实现

telescope有三个参数,<address><size><line>分别是链表首地址,尺寸与打印行数
我们可以先判断调试进程的类型来给参数赋予默认值,并找到相关api来循环取地址,以下api可以从va地址得到相应countsizebytes的值

loadBytes( va, count )
loadWords( va, count )
loadDWords( va, count )
loadQWords( va, count )
loadSignBytes( va, count )
loadSignWords( va, count )
loadSignDWords( va, count )
loadSignQWords( va, count )
loadPtrs( va, count )

全部代码如下:

from pykd import *
from optparse import OptionParser
address=0
line=8
size=8
args=[]
addlist={
   }
getmethod=[0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值