question

Xavier P. avatar image
Xavier P. asked ·

Does Dynatrace rely on method swizzling in iOS?

Due to security requirements we are not allowing method swizzling in one of our applications.

Can Dynatrace be used without method swizzling?

uemios
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Patrick H. avatar image
Patrick H. answered ·

Yes it does rely on swizzling. You can turn off any swizzling but in that case you need to use manual instrumentation as no events will be generated.

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Andrew C. avatar image
Andrew C. answered ·

Many thanks!

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Patrick H. avatar image
Patrick H. answered ·

Basically yes - also every change in the mobile agent or new UIKit derived classes in the App that lead to swizzle a new class will probably break the whitelist. The downside of manual instrumentation is that it is a lot of effort to manually instriment everything you would automatically get by swizzling.

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Andrew C. avatar image
Andrew C. answered ·

Patrick and Xavier, many thanks for such quick replies. Unfortunately you are dealing with someone whose coding life finished way before OO languages :-) From what I infer you are saying if we have a technology that detects and blocks swizzling (Arxan) even if it allows specific classes to be whitelisted from detection that the siwzzling could affect so many classes due to inheritance that we could potentially need to whitelist so many classes that it sort of makes the detection redundant. If that is the case then Manual Instrumentation is the only option. Have I got that sort of right?

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Xavier P. avatar image
Xavier P. answered ·

AFAIK the methods that are swizzled are part of UIKit and of course your view controller classes inherit from UIKit classes. Then your class methods are being swizzled.

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Andrew C. avatar image
Andrew C. answered ·

Hi, Is there a definitive list of classes that are swizzled. Our dev team are saying that their swizzling detection tool is detecting what I what call App classes being swizzled. I would have thought that didn't make sense. Your competitors make a full list if swizzled classes available :-)

1 comment Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

What are "App classes" from your point of view? If e.g the mobile agent should report "Display MyAppsViewController" then some methods like viewDidAppear need to be swizzled in "MyAppsViewController" if they have been overwritten there to get correct timings.
We do not have a put together a public available list of swizzled classes.

0 Likes 0 · ·