objective c - Hooking IVAR in theos error -


i have decrypted header files , header file hook ivars it.

/**  * header generated class-dump-z 0.2a.  * class-dump-z copyright (c) 2009 kennytm~, licensed under gplv3.  *  * source: (null)  */  #import <xxunknownsuperclass.h> // unknown library #import "inappnotificationmessageviewdelegate.h" #import "fbmsessionclassprovidable.h"  @class inappnotificationcontainerview, projectgatingchecker, fbmviewprovider, inappnotificationbadgecounter, fbmbeeperlistfetcher; @protocol fbmnavigator, fbprovider, fbmappproperties;  @interface inappnotificationmanager : xxunknownsuperclass <inappnotificationmessageviewdelegate, fbmsessionclassprovidable> {     id<fbmnavigator> _navigator;     fbmbeeperlistfetcher* _beeperlistfetcher;     inappnotificationbadgecounter* _badgecounter;     fbmviewprovider* _notificationmessageviewprovider;     inappnotificationcontainerview* _notificationcontainerview;     fbmviewprovider* _notificationcontainerviewprovider;     id<fbmappproperties> _appproperties;     projectgatingchecker* _gatingchecker;     id<fbprovider> _rootnavcontrollerprovider;     id<fbprovider> _threadviewcontrollerprovider; } @property(retain, nonatomic) id<fbmappproperties> appproperties; @property(retain, nonatomic) id<fbprovider> threadviewcontrollerprovider; @property(retain, nonatomic) id<fbmnavigator> navigator; @property(retain, nonatomic) projectgatingchecker* gatingchecker; 

so hook gatingchecker ivar, used logify , created these lines:

%hook inappnotificationmanager   - (void)setgatingchecker:(projectgatingchecker* )gatingchecker { %log; %orig; } - (projectgatingchecker* )gatingchecker { %log; projectgatingchecker*  r = %orig; nslog(@" = %@", r); return r; }   %end 

when try compile this, get:

tweak.xm:9: error: ‘projectgatingchecker’ has not been declared tweak.xm:9: error: ‘projectgatingchecker’ has not been declared tweak.xm:9: error: expected initializer before ‘*’ token tweak.xm:9: error: expected initializer before ‘*’ token tweak.xm:353: error: ‘projectgatingchecker’ has not been declared tweak.xm:354: error: expected initializer before ‘*’ token tweak.xm: in function ‘void _logoslocalinit()’: tweak.xm:361: error: ‘_logos_method$_ungrouped$inappnotificationmanager$gatingchecker’ not declared in scope tweak.xm:361: error: ‘_logos_orig$_ungrouped$inappnotificationmanager$gatingchecker’ not declared in scope make[2]: *** [obj/tweak.xm.673b4229.o] error 1 make[1]: *** [internal-library-all_] error 2 

you hook instance variables using mshookivar

projectgatingchecker *mygatingchecker = mshookivar<projectgatingchecker *>(self, "_gatingchecker"); 

you can use mygatingchecker, pointer hooked variable.


Comments

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -