这是 Pro 6.9 崩溃
Ida Pro 6.9 crash
我正在为 Ida(在 python)编写一个插件,它使用 Etcd 远程键值存储系统。我的问题是,当我尝试锁定服务器时
lock = etcd.Lock(self.client, 'ida_lock')
Should timeout after 30 seconds. Hopefully that is enough.
lock.acquire(blocking=True,lock_ttl=None,timeout=30)
if lock.is_acquired:
data,idc_file = self.get_idc_data()
if os.path.isfile('expendable.idc'):
self.client.write('/fREd/' + self.md5 + '/all/', idc_file, prevValue = open('expendable.idc','r').readlines())
else:
self.client.write('/fREd/' + self.md5 + '/all/', idc_file)
lock.release()
像这样,Ida 僵住了,我想知道是否有人知道为什么会发生这种情况或如何解决它。
所以作为参考,包含这个的方法是通过键盘快捷键调用的
idaapi.add_hotkey('Ctrl-.', self.push_data)
毫无疑问是锁导致的问题。
查看 python-etcd 源
目录/_locks/ida_lock
.下已经存在密钥
列出/_locks/ida_lock
下的文件:
etcdctl ls /_locks/ida_lock
为了摆脱这种情况,运行 :
etcdctl rm /_locks/ida_lock --dir --recursive
为了避免这种情况,你可以在finally
块运行lock.release()
就好像你不释放一样,/_locks/ida_lock
下会有一个文件残留.
此外,您可以添加一些日志记录配置(您可以参考here)以在处理此类问题时进行更多挖掘。
我正在为 Ida(在 python)编写一个插件,它使用 Etcd 远程键值存储系统。我的问题是,当我尝试锁定服务器时
lock = etcd.Lock(self.client, 'ida_lock')
Should timeout after 30 seconds. Hopefully that is enough.
lock.acquire(blocking=True,lock_ttl=None,timeout=30)
if lock.is_acquired:
data,idc_file = self.get_idc_data()
if os.path.isfile('expendable.idc'):
self.client.write('/fREd/' + self.md5 + '/all/', idc_file, prevValue = open('expendable.idc','r').readlines())
else:
self.client.write('/fREd/' + self.md5 + '/all/', idc_file)
lock.release()
像这样,Ida 僵住了,我想知道是否有人知道为什么会发生这种情况或如何解决它。
所以作为参考,包含这个的方法是通过键盘快捷键调用的
idaapi.add_hotkey('Ctrl-.', self.push_data)
毫无疑问是锁导致的问题。
查看 python-etcd 源目录/_locks/ida_lock
.下已经存在密钥
列出/_locks/ida_lock
下的文件:
etcdctl ls /_locks/ida_lock
为了摆脱这种情况,运行 :
etcdctl rm /_locks/ida_lock --dir --recursive
为了避免这种情况,你可以在finally
块运行lock.release()
就好像你不释放一样,/_locks/ida_lock
下会有一个文件残留.
此外,您可以添加一些日志记录配置(您可以参考here)以在处理此类问题时进行更多挖掘。