GithubHelp home page GithubHelp logo

dios-analysis / dios Goto Github PK

View Code? Open in Web Editor NEW
85.0 13.0 25.0 5 KB

DiOS: Large-Scale Dynamic Privacy Analysis of iOS App Store Applications

Home Page: https://www1.cs.fau.de/DiOS

License: BSD 3-Clause "New" or "Revised" License

dios's Introduction

DiOS

DiOS is a practical system to perform automated dynamic privacy analysis of iOS apps. DiOS provides a highly scalable and fully automated solution to schedule apps from the official Apple App Store for privacy analysis to iOS devices. While apps are automatically executed, user interaction is simulated using random and smart execution strategies, and sensitive API calls as well as network connections are tracked.

DiOS allows for structured exploration and navigation of an app's UI by leveraging the automated UI testing support provided by the official Apple development tools. Originally, this feature was intended to simplify UI tests during an app's development phase. However, we successfully reverse engineered the inner workings to retrofit even existing App Store apps to make use of Apple's UI automation features. This allowed us to investigate several robust UI exploration strategies that simulate user interaction and thus optimize an app's UI coverage.

One of the core features of DiOS is its pluggable architecture. While apps are automatically executed and user interaction is simulated using smart execution strategies, any analysis component can be integrated easily.

Basically, the DiOS system consists of three major parts: a backend that is mainly used as central data storage, a worker used as connecting link between the backend and any number of attached iOS devices, and several client components running on the connected iOS devices. Each of these components will be explained in more detail within the appropriate repository.

dios's People

Contributors

awein avatar ay-kay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dios's Issues

Worker unable to archive app binary

When the installation process is started, the worker prints the following error:

INFO:worker.job:job created: <job.RunAppJob object at 0x7fdfab1031d0>
INFO:worker:Executing Job <job.RunAppJob object at 0x7fdfab1031d0>
INFO:worker.job:executing RunAppJob 54622658043f760b768b627c on device <iDevice: [udid-redacted]>
INFO:worker.job:executing InstallAppJob False on device <iDevice: [udid-redacted]>
INFO:worker.job:installing app com.sapient.Saturn from backend (size: 7007959)
WARNING:worker.backend:Unable to get app archive for app 546225ee043f760b768b627a
WARNING:worker.job:unable to get app archive from backend. appId: <546225ee043f760b768b627a>
INFO:worker.job:installing app com.sapient.Saturn via appstore
ERROR:worker.job:Job execution failed: unable to archive app binary: [Errno 2] No such file or directory: u'/tmp/apparchive/com.sapient.Saturn.ipa'
ERROR:worker.job:Job execution failed: Unable to install app

I have checked the file structure on the local machine and via SFTP on the device, and the local machine had the folder /tmp/apparchive from the very beginning. I have additionally created the folder on the device, just to make sure, and given both the local folder and the one on the device permission level 0777. I have also tried various different apps, albeit all from within the App store (I haven't tried any from the Cydia store).

Still, the error persists.

issue when make package sbservertweek

Making stage for tweak SBServerTweak…
dpkg-deb: warning: deprecated compression type 'lzma'; use xz instead
dpkg-deb: error: parsing file '/Users/username/Desktop/Pilot/SBServerTweak/.theos/_/DEBIAN/control' near line 10 package 'de.fau.cs.dios.pilot.sbservertweak:iphoneos-arm':
junk after word in 'Priority' field

mac OS X 10.11

Can not execute APPS with DiOS

i have successfully installed apps through DiOS,but when i click execute button ,errors came out .And my iPad went into the safe mode,the syslog :

ERROR:worker:Executing job failed: ('Connection aborted.', BadStatusLine("''",))
ERROR:worker:traceback: Traceback (most recent call last):
File "worker.py", line 61, in run
job.execute()
File "/Users/zhen/Desktop/DiOS/Worker/job.py", line 377, in execute
self._execute_app(pilot, bundleId, runId, executionStrategy)
File "/Users/zhen/Desktop/DiOS/Worker/job.py", line 321, in _execute_app
pilot.run_auto_execution(bundleId, taskInfo=taskInfo)
File "/Users/zhen/Desktop/DiOS/Worker/pilot.py", line 111, in run_auto_execution
r = requests.post("%s/execute/%s" % (self.baseUrl, bundleId), data=json.dumps(data))
File "/Library/Python/2.7/site-packages/requests/api.py", line 108, in post
return request('post', url, data=data, json=json, *_kwargs)
File "/Library/Python/2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, *_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 464, in request
resp = self.send(prep, *_send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, *_kwargs)
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))

ERROR:worker:Device loop will be stopped now.

my iPad was 8.1.
What's the problems??

iOS 8.4 Compatibility

I've been able to get DiOS to the point where it will startup, install the selected application,
and then attempts to begin driving the application, but it immediately crashes springboard. I'm running on a jailbroken iOS 8.4 (12H143) iPad Air. When the crash happens syslog has the following entries:

Aug 3 17:44:54 Bobs-iPad SpringBoard[1072] : -[SBUIController launchIcon:fromLocation:]: unrecognized selector sent to instance 0x100752a20
Aug 3 17:44:54 Bobs-iPad SpringBoard[1072] : *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SBUIController launchIcon:fromLocation:]: unrecognized selector sent to instance 0x100752a20'

As you mentioned, this is due to DiOS not yet supporting iOS 8.4. Would it be possible to update DiOS to support iOS 8.4?

Issue on ios SDK 8.2

I am trying to compile it on ios sdk 8.2 following the wiki though getting this error , kindly help when building SBServertweak make: *** [internal-package] Error 133

iOS 9 Compatibility

I can't get our Jailbroken iOS 9.0.2 Device to work with DiOS.
Any idea how complex the adjustments could be to get this fixed?

App Batch Download Mode

Looking for an additional mode, e.g. called "DownloadOnly", that allows for bulk app downloading and caching app packages in the DiOS backend database for further processing. This would allow to fill up the backend while connected to a high-speed Internet connection, while later analysis could be performed almost offline.

In addition, looking for a configuration switch to keep a copy of the IPA files in the file system.

iOS 8 Compatibility?

DiOS didn't work out of the box with an jailbroken iOS8 Device.
Is this a known Problem or should DiOS work with jailbroken iOS8 Devices?

Response code 423 from pilot

Hey,

we get very often the response 423 from the pilot. Due to this nearly all installation jobs fail. However installing by hand works and the pilot seems to fill the credentials. Suggestions?

Problem with AAExecutorDaemon

When i run an app on ios device,the AAExecutorDaemon will output the following logs:
"2015-12-11 00:01:24.872 aaexecutord[4954:99503] UIAutomation is not enabled on this device. UIAutomation must be enabled in Settings."

and then exit.

But this problem can't be solved after i enable the "UIAutomation" setting using xcode.

So how to fix this issue? Thanks

Cannot execute apps with DiOS

Hey,

I cannot execute apps with DiOS. I always get the following error:

[WARNING/DeviceServer-1:1:1:1] Connection to device <MuxDevice: ID 1 ProdID 0x12a6 Serial 'f975bb8de21cd2a78841f19dfc4d6647d00653b4' Location 0x10002> died!
ERROR:worker:Executing job failed: HTTPConnectionPool(host='127.0.0.1', port=40105): Max retries exceeded with url: /execute/com.google.chrome.ios (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)

After that the device loop stops. Do you have suggestions? Pilot and AAExecutorDaemon is installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.