Comments (5)
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.
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.
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.
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.
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)
- Access violation on type_register.cpp::549 get_base_types()
- get wrong result. HOT 1
- Can't retrieve data for variant
- Is it possible to get the type of a template? HOT 1
- warning: '<anonymous>' may be used uninitialized HOT 1
- max_sizeof_list returns incorrect value for template types
- How to combine with magic_enum to generate enum reflection automatically
- Support for vs2022 (c++20) HOT 1
- The value obtained is incorrect.
- Upload master to conan.
- Has this project dead? HOT 3
- H
- Reported compiler error on OSX when `BUILD_STATIC` is `ON`
- None of the versions compile for C++ 20 HOT 3
- Undefined symbols when use as static library.
- Casting an object instance to be the type stored in rttr::type
- Registration Error
- Build failure | Android | Clang
- Build failure | UWP | MSVC
- get_by_name failed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rttr.