bootleg / ret-sync

ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
GNU General Public License v3.0
2.03k stars 259 forks source link

can't use on IDA7.7 #104

Open ghost opened 1 year ago

ghost commented 1 year ago

comment: broker started broker finished idb is disabled

i created idb but problem still sync checkbox immediately uncheck.

wkingnet commented 1 year ago

same to me

Hacksign commented 11 months ago

+1

And I enabled:

LOG_LEVEL = logging.DEBUG
LOG_TO_FILE_ENABLE = True

But there is no any files located in %TEMP% folder.

[sync] form create
[sync] default idb name: ntoskrnl_en.exe
[sync] found config file: user_conf(host='127.0.0.1', port=8844, alias=None, path='D:\\Codes\\xxx\\thirdpart\\Windows10\\x64\\.sync')
[sync] hint: pdb name ('ntkrnlmp.exe') differs from registered module name ('ntoskrnl_en.exe')
[sync] sync enabled
[sync] init_broker
[sync] cmdline: "D:\Softwares\Python3\python.exe" -u "D:\Softwares\IDA Pro\plugins\retsync\broker.py" --idb "ntoskrnl_en.exe"
[sync] module base 0x140000000
[sync] hexrays #7.7.0.220118 found
[sync] broker new state: Starting
[sync] broker new state: Running
[sync] broker started
[sync] plugin loaded
[sync] broker new state: Not running
[sync]     check tmp file retsync.<broker|dispatcher>.err if you think this is an error
[sync] broker finished
[sync] idb is disabled
Hacksign commented 11 months ago

OK, I figured it out in my situation.

It's because retsync can not find rsconfig/broker/diapatcher in sys.path.

Because I use a embed version of python 3.10, so I just add retsync directory to python310 to solve it: (D:\Softwares\IDA Pro\plugins\retsync is the plugin location in my situation)

D:\Softwares\IDA Pro\plugins\retsync
.\Lib\site-packages\
python310.zip
.
gu0o00 commented 4 months ago

retsync/dispatcher.py文件中,在import rsconfig的前面,加上一行代码sys.path.append(os.path.normpath(os.path.dirname(__file__))) 大概是这样子

sys.path.append(os.path.normpath(os.path.dirname(__file__)))
import rsconfig
from rsconfig import rs_encode, rs_decode, load_configuration

在retsync/broker.py文件中也做同样的修改:

sys.path.append(os.path.normpath(os.path.dirname(__file__)))
import rsconfig
from rsconfig import rs_encode, rs_decode, load_configuration

我是这样解决了