feedface [WIP] - OS X

Users browsing this thread: 1 Guest(s)
bottomy
Registered
I probably should've updated this awhile ago, but this project is dead, it has since been turned into a framework. The reason for doing that was that it was a lot more useful and powerful having it as a framework, and not to mention the scale of what the project would do grew a lot. The downside (well downside for some) from this is because of the scale of the project I decided to use Obj-C rather than straight C. One of the biggest changes/additions is that it also has a focus on exposing the Obj-C runtime now.

The framework can be found at [Feedface framework repo](https://github.com/ScrimpyCat/FeedFace)

The framework is not finished by any means, as there's a lot of features that haven't been added yet (hooks, proper error system, object instances interaction, few other kinds of injections, etc.) and some functionality that is supported for 64 bit processes that hasn't been added to 32 bit processes. But it can do a lot in its current state.
- - -
An example of some of the use cases of this framework can be found in the Examples folder. One particularly useful example is [example7](https://github.com/ScrimpyCat/FeedFace/b...example7.m) which is a very simple method logger.

The usage for the example7 program is: example7 [process] [class the method belongs to] [0/1 instance or class method] [method name]

So an example usage would be if we wanted to log all calls to -[NSObject dealloc] in the Dock process.
Code:
sudo ./example7 Dock NSObject 0 dealloc

Then you can look in the Console application to see the logs:
Code:
Dock[49401]: [<CALayerArray: 0x7fd7f0381cc0> dealloc]
Dock[49401]: [<CALayer: 0x7fd7f03823a0> dealloc]
Dock[49401]: [<CALayer: 0x7fd7f003c6e0> dealloc]
Dock[49401]: [<CALayerArray: 0x7fd7f03823e0> dealloc]
Dock[49401]: [<CALayer: 0x7fd7f0385610> dealloc]
Dock[49401]: [<CALayerArray: 0x7fd7f0385650> dealloc]
Dock[49401]: [<__NSArrayI: 0x7fd7eb893be0> dealloc]
Dock[49401]: [<_CTNativeGlyphStorage: 0x7fd7f0451b60> dealloc]
Dock[49401]: [<ECTextLayer: 0x7fd7eba5c600> dealloc]
Dock[49401]: [<CALayerArray: 0x7fd7f003b760> dealloc]
Dock[49401]: [<_CTNativeGlyphStorage: 0x7fd7f04691c0> dealloc]
Dock[49401]: [<ECTextLayer: 0x7fd7f0077d10> dealloc]
Dock[49401]: [<OS_dispatch_source: 0x7fd7edc16f00> dealloc]
Dock[49401]: [<__NSArrayM: 0x7fd7ebad99f0> dealloc]

After you're done just press enter to disable the logging. Otherwise if you kill it or the program crashes, you will want to kill the Dock so it stops logging.

Later this kind of functionality (along with a detailed method logger) will actually be in the core framework as it is quite useful (though this kind of stuff is typically better off done using stuff like DTrace). But this is a good example of how the framework could be used.


Messages In This Thread
feedface [WIP] - by bottomy - 27-07-2012, 09:24 AM
RE: feedface [WIP] - by yrmt - 27-07-2012, 09:29 AM
RE: feedface [WIP] - by bottomy - 02-10-2012, 03:12 AM
RE: feedface [WIP] - by xyzodiac - 03-10-2012, 09:30 AM
RE: feedface [WIP] - by bottomy - 10-07-2013, 10:09 PM