{"action":"created","issue":{"url":"https://api.github.com/repos/frida/frida-java/issues/1","repository_url":"https://api.github.com/repos/frida/frida-java","labels_url":"https://api.github.com/repos/frida/frida-java/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/frida/frida-java/issues/1/comments","events_url":"https://api.github.com/repos/frida/frida-java/issues/1/events","html_url":"https://github.com/frida/frida-java/pull/1","id":191244183,"number":1,"title":"Cleanup & a few bug fixes regarding method re-implementation","user":{"login":"iamahuman","id":12353739,"avatar_url":"https://avatars.githubusercontent.com/u/12353739?v=3","gravatar_id":"","url":"https://api.github.com/users/iamahuman","html_url":"https://github.com/iamahuman","followers_url":"https://api.github.com/users/iamahuman/followers","following_url":"https://api.github.com/users/iamahuman/following{/other_user}","gists_url":"https://api.github.com/users/iamahuman/gists{/gist_id}","starred_url":"https://api.github.com/users/iamahuman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iamahuman/subscriptions","organizations_url":"https://api.github.com/users/iamahuman/orgs","repos_url":"https://api.github.com/users/iamahuman/repos","events_url":"https://api.github.com/users/iamahuman/events{/privacy}","received_events_url":"https://api.github.com/users/iamahuman/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-23T11:16:02Z","updated_at":"2016-11-30T00:37:48Z","closed_at":"2016-11-23T19:33:57Z","pull_request":{"url":"https://api.github.com/repos/frida/frida-java/pulls/1","html_url":"https://github.com/frida/frida-java/pull/1","diff_url":"https://github.com/frida/frida-java/pull/1.diff","patch_url":"https://github.com/frida/frida-java/pull/1.patch"},"body":"  - Removed resolution to wrong symbol `artQuickGenericJniTrampoline` (not a quick code, just inner impl.)\r\n  - Allow ArtMethod instance mutation via kFastNative flag (needed by method restoration when calling the original method)\r\n  - Sepearation between allocation ($alloc, corresponds to new-instance or Unsafe.allocateInstance) and initialization ($init, coressponds to &lt;init&gt;) - allows overriding of constructors\r\n  - Selective patching and restoration of individual ArtMethod fields\r\n  - Corrected a bug causing stack frame recognition of re-implemented methods to fail due to incorrect resolution of quick_generic_jni_trampoline\r\n\r\nSuggestions are welcome!"},"comment":{"url":"https://api.github.com/repos/frida/frida-java/issues/comments/263746803","html_url":"https://github.com/frida/frida-java/pull/1#issuecomment-263746803","issue_url":"https://api.github.com/repos/frida/frida-java/issues/1","id":263746803,"user":{"login":"iamahuman","id":12353739,"avatar_url":"https://avatars.githubusercontent.com/u/12353739?v=3","gravatar_id":"","url":"https://api.github.com/users/iamahuman","html_url":"https://github.com/iamahuman","followers_url":"https://api.github.com/users/iamahuman/followers","following_url":"https://api.github.com/users/iamahuman/following{/other_user}","gists_url":"https://api.github.com/users/iamahuman/gists{/gist_id}","starred_url":"https://api.github.com/users/iamahuman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iamahuman/subscriptions","organizations_url":"https://api.github.com/users/iamahuman/orgs","repos_url":"https://api.github.com/users/iamahuman/repos","events_url":"https://api.github.com/users/iamahuman/events{/privacy}","received_events_url":"https://api.github.com/users/iamahuman/received_events","type":"User","site_admin":false},"created_at":"2016-11-30T00:37:48Z","updated_at":"2016-11-30T00:37:48Z","body":"Oh, nice work! I didn't thought the class_linker_ field would be\nprobe-able, hope it'll work well across versions... :D\n\nOn Nov 30, 2016 4:57 AM, \"Ole André Vadla Ravnås\" <notifications@github.com>\nwrote:\n\n*@oleavr* commented on this pull request.\n------------------------------\n\nIn index.js <https://github.com/frida/frida-java/pull/1>:\n\n>\n-        let jniCodeOffset = -1;\n-        let accessFlagsOffset = -1;\n-        let remaining = 2;\n-        for (let offset = 0; offset !== 64 && remaining !== 0; offset += 4) {\n-            const field = setArgV0.add(offset);\n+const getArtMethodSpec = resolveStructSpec.bind({\n\n@iamahuman <https://github.com/iamahuman> FWIW I have now split index.js\ninto multiple modules, and implemented calculation of all the fields:\nhttps://github.com/frida/frida-java/blob/6f93ee08924231dae50565511d1ad1\n532055eedd/lib/android.js\n\nThis test is now passing with four test-devices connected -- three of which\nare 32-bit ARM emulators running 5.0, 5.1, and 6.0, and the last of which\nis a 64-bit Samsung Galaxy S6 Edge device:\nhttps://github.com/frida/frida-java/blob/6f93ee08924231dae50565511d1ad1\n532055eedd/test/android.js#L22-L111\n(Yeah the test is a bit verbose, but at least it's very explicit.)\n\nSome testing still remains, but should hopefully be able to release this\nsoon.\n\n—\nYou are receiving this because you were mentioned.\n\nReply to this email directly, view it on GitHub\n<https://github.com/frida/frida-java/pull/1>, or mute the thread\n<https://github.com/notifications/unsubscribe-auth/ALyAyz-5MS1tyjz8gaWp7aQCpgoa_uVmks5rDIOYgaJpZM4K6dmF>\n.\n"}}
{"actor":{"display_login":"iamahuman"}}