Code Monkey home page Code Monkey logo

Comments (5)

acki-m avatar acki-m commented on August 17, 2024

I have no mac hardware to run osx myself. However, via travis-ci I was successfully able to compile and run RTTR on OSX. See yourself: https://travis-ci.org/rttrorg/rttr/jobs/103709101

Did you followed the install guide? http://www.rttr.org/doc/rttr-0-9-5/building_install_page.html
When you have installed RTTR, you should point with a environment variable to the install dir:
set RTTR_DIR=c:/rttr-1.0.0-win64-vs2013

I know @mgee runs OSX, maybe he can help you.

PS: You should not include any impl headers.

from rttr.

johndpope avatar johndpope commented on August 17, 2024

I didn't set the RTTR_DIR / that looks very specific to windows.
I guess I must be missing the use case of this app - I had imagine it being something similar to dot net reflector but in fact it depends on the code being including pre-compilation?

I found an example of dylib injection for an app. https://github.com/nqn/dylib
Is this related to this code? Could RTTR just hook into a process and introspect away (without necessarily having access to source code). Is the RTTR capable of this?

Or said another way - could I build a project and have it introspect an included third party library?

The appealing thing with this library is - it looks like I could overcome having to translate c++ private methods to extern C as per this thread ->
https://reverseengineering.stackexchange.com/questions/11840/recycling-private-framework-sdk-no-header-files-osx

that is if I knew the class name / struct / and method - could I conceivably craft a call with this library to execute at run time?

from rttr.

mengelbrecht avatar mengelbrecht commented on August 17, 2024

The error indicates that you have not set up the correct include path for RTTR. To further track down the error it would be helpful if you could post the command line used to compile the main.cpp from the screenshot.

from rttr.

acki-m avatar acki-m commented on August 17, 2024

RTTR_DIR is not specific to windows, it is needed for CMake to find the CMake find modules of RTTR.

RTTR cannot hook into an external process and retrieve the reflection information.
You need at least access to the class declaration of the third party lib and then manually register the members you want to reflect.

A typical use case would be following:
You create a plugin (which would be in your case the 3rdParty lib), where you register your reflection information within RTTR_REGISTRATION.
Then you can load the plugin and retrieve the reflection information of your particular type via rttr::type::get_by_name().
Therefore you don't need access to the header files, you can create, invoke and set properties of classes, without the actual type.

I think, what you are looking for is a hooking library, but without exported symbols I think it will be difficult.

from rttr.

johndpope avatar johndpope commented on August 17, 2024

thanks for coming back so quickly. I think this maybe more suited -> https://github.com/kpwn/harpoon
thanks again. P.S. unlike windows apps / I read somewhere that OSX apps include their symbols by default.

from rttr.

Related Issues (20)

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.