malus-security / ioracle Goto Github PK
View Code? Open in Web Editor NEWAutomated analysis of the iOS access control architecture
License: Other
Automated analysis of the iOS access control architecture
License: Other
There is a file related filter in SBPL called filemode. I suspect is has something to do with unix permissions. We need to design experiments to figure out what satisfies this filter. Then we need to model its semantics in a Prolog rule.
E.g., resolving a _getpwnam call on "mobile". To know what the result of this call will be, the system needs to have information about the etc/passwd file which could be provided by iOracle. If we can find some other situations like this, we might be onto another way to apply iOracle while collecting much more relevant data to make queries on. This could be a new paper.
The ----; in ida doesn't necessarily mean there are 2 parent basic blocks. It just means the above line doesn't flow down. For the case i saw in syslog i think that there is just one parent block but it is a far cross reference, which we could handle in theory, but i need to fix the code. We should just jump up the location of the far cross reference.
This would also make it much easier to query for a parameter such as a file path and then see which function it gets used in. Backtracer should also include code address for easy manual investigation.
I could also do something like
calledFunc(process(...),function(...),address(...),r0("some value"),r1(unknown),r2("some value"),r3(unknown)).
%this way we can use atoms instead of strings to represent sentinel values for when we don't find a valid value for the register.
%most of the time our queries should be aware of which registers are relevant anyway such as only considerring r0 and r1 for a chmod function.
We would need to do some post processing on the register values depending on the data type of the parameters. Fortunately, IDA can infer the parameters for well known functions, and we can use this information to know how to process each parameter. Our prolog facts could also include the data type (e.g., r0(rawValue(0x2382AB32),type("const char*),processed_value("/var/mobile/Media/")).)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.