{"action":"created","issue":{"url":"https://api.github.com/repos/das-labor/panopticon/issues/196","repository_url":"https://api.github.com/repos/das-labor/panopticon","labels_url":"https://api.github.com/repos/das-labor/panopticon/issues/196/labels{/name}","comments_url":"https://api.github.com/repos/das-labor/panopticon/issues/196/comments","events_url":"https://api.github.com/repos/das-labor/panopticon/issues/196/events","html_url":"https://github.com/das-labor/panopticon/pull/196","id":171836298,"number":196,"title":"initial prototype sample usage for goblin","user":{"login":"m4b","id":1920204,"avatar_url":"https://avatars.githubusercontent.com/u/1920204?v=3","gravatar_id":"","url":"https://api.github.com/users/m4b","html_url":"https://github.com/m4b","followers_url":"https://api.github.com/users/m4b/followers","following_url":"https://api.github.com/users/m4b/following{/other_user}","gists_url":"https://api.github.com/users/m4b/gists{/gist_id}","starred_url":"https://api.github.com/users/m4b/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m4b/subscriptions","organizations_url":"https://api.github.com/users/m4b/orgs","repos_url":"https://api.github.com/users/m4b/repos","events_url":"https://api.github.com/users/m4b/events{/privacy}","received_events_url":"https://api.github.com/users/m4b/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-08-18T07:36:14Z","updated_at":"2016-08-18T16:05:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/das-labor/panopticon/pulls/196","html_url":"https://github.com/das-labor/panopticon/pull/196","diff_url":"https://github.com/das-labor/panopticon/pull/196.diff","patch_url":"https://github.com/das-labor/panopticon/pull/196.patch"},"body":"I wouldn't merge this as is necessarily, just sample PR showing how goblin could be used.\r\n\r\nThere's several different routes to take to reduce the ELF64/ELF32 boilerplate.  A simple way would be to convert ELF32s -> ELF64, which would just take the u32s -> u64, and then the tool would deal with just ELF64 binaries.  This is probably an all around bad idea, but would be the simplest.\r\n\r\nOr macros to pun on the field names which are the same (which is probably the approach I'll end up taking for all of the impure `from_fd` stuff in the lib itself)\r\n\r\nNote, ELF32 doesn't have `from_fd` methods implemented yet, and I'm not sure if I'll have time to write them right now (though it really just is copy/pasting or better, just writing macros like I said above).\r\n\r\nAnyway, PR just a suggestion on way to go about it/demonstrate simple usage.  Also the API for `goblin::elf` isn't quite finalized (but hoping to do so soon for a 1.0 release, still need to think about some things/work on things, etc.), so be aware that I might break upstream every now and then.\r\n\r\nNevertheless, the `goblin::elf::Binary::Elf64` object is pretty complete for most needs I think, and will be basically exactly the same for Elf32.\r\n\r\nBut yea, this is how you might start to use it, if you're interested :P"},"comment":{"url":"https://api.github.com/repos/das-labor/panopticon/issues/comments/240772172","html_url":"https://github.com/das-labor/panopticon/pull/196#issuecomment-240772172","issue_url":"https://api.github.com/repos/das-labor/panopticon/issues/196","id":240772172,"user":{"login":"flanfly","id":5614769,"avatar_url":"https://avatars.githubusercontent.com/u/5614769?v=3","gravatar_id":"","url":"https://api.github.com/users/flanfly","html_url":"https://github.com/flanfly","followers_url":"https://api.github.com/users/flanfly/followers","following_url":"https://api.github.com/users/flanfly/following{/other_user}","gists_url":"https://api.github.com/users/flanfly/gists{/gist_id}","starred_url":"https://api.github.com/users/flanfly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flanfly/subscriptions","organizations_url":"https://api.github.com/users/flanfly/orgs","repos_url":"https://api.github.com/users/flanfly/repos","events_url":"https://api.github.com/users/flanfly/events{/privacy}","received_events_url":"https://api.github.com/users/flanfly/received_events","type":"User","site_admin":false},"created_at":"2016-08-18T16:05:37Z","updated_at":"2016-08-18T16:05:37Z","body":"Cool, thanks for the PR! When support for ELF32 has landed in crates.io I'll merge it."}}
{"actor":{"display_login":"flanfly"}}