{"action":"created","issue":{"url":"https://api.github.com/repos/Sable/soot/issues/54","repository_url":"https://api.github.com/repos/Sable/soot","labels_url":"https://api.github.com/repos/Sable/soot/issues/54/labels{/name}","comments_url":"https://api.github.com/repos/Sable/soot/issues/54/comments","events_url":"https://api.github.com/repos/Sable/soot/issues/54/events","html_url":"https://github.com/Sable/soot/issues/54","id":13544147,"number":54,"title":"Symbolic execution for Java/Android code","user":{"login":"malaverdiere","id":2126143,"avatar_url":"https://avatars.githubusercontent.com/u/2126143?v=3","gravatar_id":"","url":"https://api.github.com/users/malaverdiere","html_url":"https://github.com/malaverdiere","followers_url":"https://api.github.com/users/malaverdiere/followers","following_url":"https://api.github.com/users/malaverdiere/following{/other_user}","gists_url":"https://api.github.com/users/malaverdiere/gists{/gist_id}","starred_url":"https://api.github.com/users/malaverdiere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/malaverdiere/subscriptions","organizations_url":"https://api.github.com/users/malaverdiere/orgs","repos_url":"https://api.github.com/users/malaverdiere/repos","events_url":"https://api.github.com/users/malaverdiere/events{/privacy}","received_events_url":"https://api.github.com/users/malaverdiere/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Sable/soot/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2013-04-23T16:41:26Z","updated_at":"2016-10-14T17:45:53Z","closed_at":null,"body":"(copy-pasted from GSOC application)\r\nExplanations:\r\nSymbolic execution is a program analysis technique that has many applications such as test-input generation, bug finding. The basic idea behind symbolic execution is as follows. The program is executed with symbolic values, instead of concrete values, as program inputs, and the values of program variables are represented as symbolic expressions of those inputs. At any point during symbolic execution, the state of a symbolically executed program includes the symbolic values of program variables at that point, a path constraint on the symbolic values to reach that point, and a program counter. The path constraint (PC) is a boolean formula over the symbolic inputs, which is an accumulation of the constraints that the inputs must satisfy for an execution to follow that path. At each branch point during symbolic execution, the PC is updated with constraints on the inputs such that (1) if the PC becomes unsatisfiable, the corresponding program path is infeasible, and symbolic execution does not continue further along that path and (2) if the PC is satisfiable, any solution of the PC is a program input that executes the corresponding path. The program counter identifies the next statement to be executed. In this project, the student is expected to extend the code base of ACTEve (http://code.google.com/p/acteve), which is a symbolic-execution tool for Android apps (available in Java .class format) and uses Soot. \r\nNote: There are many interesting research problems related to symbolic execution. So this project can be equally suitable for students interested in research publication.\r\n\r\nExpected Results:\r\nA symbolic-execution tool for Java. Specifically, given a program input, the tool will (1) compute PC for the path that the program takes for that input, and (2) generate new inputs that drive the program along paths that are different than the path that the original input takes.\r\n\r\nKnowledge prerequisite:\r\nGood Java programming skills; knowledge of symbolic execution in particular and program analysis in general."},"comment":{"url":"https://api.github.com/repos/Sable/soot/issues/comments/253871522","html_url":"https://github.com/Sable/soot/issues/54#issuecomment-253871522","issue_url":"https://api.github.com/repos/Sable/soot/issues/54","id":253871522,"user":{"login":"gourav1905","id":11960294,"avatar_url":"https://avatars.githubusercontent.com/u/11960294?v=3","gravatar_id":"","url":"https://api.github.com/users/gourav1905","html_url":"https://github.com/gourav1905","followers_url":"https://api.github.com/users/gourav1905/followers","following_url":"https://api.github.com/users/gourav1905/following{/other_user}","gists_url":"https://api.github.com/users/gourav1905/gists{/gist_id}","starred_url":"https://api.github.com/users/gourav1905/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gourav1905/subscriptions","organizations_url":"https://api.github.com/users/gourav1905/orgs","repos_url":"https://api.github.com/users/gourav1905/repos","events_url":"https://api.github.com/users/gourav1905/events{/privacy}","received_events_url":"https://api.github.com/users/gourav1905/received_events","type":"User","site_admin":false},"created_at":"2016-10-14T17:45:53Z","updated_at":"2016-10-14T17:45:53Z","body":"Were you able to add the module for symbolic execution to soot."}}
{"actor":{"display_login":"gourav1905"}}