Giter VIP home page Giter VIP logo

ric's People

Contributors

kongjiadongyuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

yjw1029

ric's Issues

信息获取不全

使用ric打开二进制文件,得到的函数数量要比实际用ida打开得到的少得多。并且函数反编译信息不完整。
image
函数内部均为jumpout 某个i64地址。

如果我双击打开i64,再次用ric分析文件,re_analyze=False。 函数列表和函数反编译信息都没错了

我该如何解决这一问题呢? 我目前的需求是自动化的处理我所提交的二进制文件并获取函数信息。

rpc bug

My Python script is as follows:

from ric import RICConfig, RIC

config = RICConfig(
    ida="/workspace/tools/ida/idat64",
    binary="./test_binaries/objdump-2.42-O0-debug"
)

with RIC(config) as ric:
    idautils = ric.get_module('idautils')
    function_list = list(idautils.Functions())
    for func in function_list:
        print(func)

When I run this script, an error occurs as following:

  File "ric_test.py", line 8, in <module>
    with RIC(config) as ric:
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/ric/client.py", line 160, in __enter__
    self.start()   
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/ric/client.py", line 145, in start
    conn = rpyc_connect("localhost", port, timeout=self.config.connect_timeout)
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/ric/client.py", line 25, in rpyc_connect
    conn = rpyc.connect(*args, **kwargs)
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/rpyc/utils/factory.py", line 102, in connect
    s = SocketStream.connect(host, port, ipv6=ipv6, keepalive=keepalive)
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/rpyc/core/stream.py", line 174, in connect
    return cls(cls._connect(host, port, **kwargs))
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/rpyc/core/stream.py", line 126, in _connect
    s = socket_backoff_connect(family, socktype, proto, sockaddr, timeout, attempts)
  File "/root/miniconda3/envs/dirty/lib/python3.8/site-packages/rpyc/lib/__init__.py", line 150, in socket_backoff_connect
    sock.connect(addr)
ConnectionRefusedError: [Errno 111] Connection refused

I think the possible reason is that sometimes, after the script terminates unexpectedly, the remote idat process does not exit normally and become zombie process like following:

root       17845  0.0  0.0      0     0 pts/5    Z    21:45   0:00 [idat64] <defunct>

import hook

use builtins.import hook to support origin ida scripts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.