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
Post a Comment