Files
hh-bt-controller/sniffer/search_so_libs.py
T

1 line
6.8 KiB
Python

IiIiCnNlYXJjaF9zb19saWJzLnB5IC0gU2VhcmNoIG5hdGl2ZSAuc28gbGlicmFyaWVzIGluc2lkZSBLQUlZVSBBUEsgZm9yIEJMRSBVVUlEcy4KClRoZSBERVggaGFkIG5vIFVVSUQgc3RyaW5ncyBiZWNhdXNlIHRoZSBCTEUgbG9naWMgaXMgaW4gYSBuYXRpdmUgbGlicmFyeS4KVGhpcyBzY3JpcHQgZXh0cmFjdHMgYWxsIC5zbyBmaWxlcyBhbmQgc2VhcmNoZXMgdGhlaXIgcmF3IGJ5dGVzIGZvcjoKICAtIFVVSUQgc3RyaW5ncyAoeHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4KQogIC0gU2hvcnQgVVVJRCBoZXggc3RyaW5ncyAoZmZlMCwgZmZlMSwgZmZmMCwgZmZmMyBldGMuKQogIC0gS25vd24gQkxFIGNvbW1hbmQgYnl0ZSBzZXF1ZW5jZXMgKDdlMDAsIGNjMjMgZXRjLikKICAtIEFueSBzdHJpbmcgbWVudGlvbmluZyBibHVldG9vdGgvZ2F0dC9jaGFyYWN0ZXJpc3RpYwoKVXNhZ2U6CiAgICBweXRob24gc25pZmZlci9zZWFyY2hfc29fbGlicy5weQogICAgcHl0aG9uIHNuaWZmZXIvc2VhcmNoX3NvX2xpYnMucHkgLS1hcGsgcGF0aC90by9rYWl5dS5hcGsKIiIiCgppbXBvcnQgemlwZmlsZQppbXBvcnQgcmUKaW1wb3J0IG9zCmltcG9ydCBzeXMKaW1wb3J0IGFyZ3BhcnNlCgpBUEtfQ0FORElEQVRFUyA9IFsKICAgIHIiRDpcQ2xhdWRlXGJ1Z3JlcG9ydFxhcGtfZXh0cmFjdFxrYWl5dS5hcGsiLAogICAgcidEOlxIZXJlTXlIb3BlXGthaXl1LmFwaycsCiAgICBya2FpeXUuYXBrIiwKXQoKVVVJRF9SRSA9IHJlLmNvbXBpbGUoCiAgICByYidbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nCikKCklOVEVSRVNUSU5HX1NIT1JUID0gWwogICAgYiJmZmUwIiwgYiJmZmUxIiwgYiJmZmUyIiwKICAgIGIiZmZmMCIsIGIiZmZmMSIsIGIiZmZmMiIsIGIiZmZmMyIsIGIiZmZmNCIsCiAgICBiImZmZDUiLCBiImZmZDkiLAogICAgYiJGRkUwIiwgYiJGRkUxIiwgYiJGRkYwIiwgYiJGRkYzIiwKXQoKSU5URVJFU1RJTkdfSEVYID0gWwogICAgYnl0ZXMuZnJvbWhleCgiN2UwMDA1IiksCiAgICBieXRlcy5mcm9taGV4KCI3ZTAwMDQiKSwKICAgIGJ5dGVzLmZyb21oZXgoIjdlMDAwMSIpLAogICAgYnl0ZXMuZnJvbWhleCgiNTZmZjAwIiksCiAgICBieXRlcy5mcm9taGV4KCJjYzIzMzMiKSwKICAgIGJ5dGVzLmZyb21oZXgoImNjMjQzMyIpLApdCgpCTEVfS0VZV09SRFMgPSBbCiAgICBiImJsdWV0b290aCIsIGIiQmx1ZXRvb3RoIiwgYiJCTFVFVE9PVEgiLAogICAgYiJnYXR0IiwgYiJHQVRUIiwgYiJHYXR0IiwKICAgIGIiY2hhcmFjdGVyaXN0aWMiLCBiIkNoYXJhY3RlcmlzdGljIiwKICAgIGIid3JpdGVDaGFyIiwgYiJXcml0ZUNoYXIiLAogICAgYiJzZXRDb2xvciIsIGIiU2V0Q29sb3IiLCBiInNldFJHQiIsIGIiU2V0UkdCIiwKICAgIGIiYnJpZ2h0bmVzcyIsIGIiQnJpZ2h0bmVzcyIsCiAgICBiIjAwMDBmZmUiLCBiIjAwMDBmZmYiLApdCgoKZGVmIGV4dHJhY3Rfc3RyaW5ncyhkYXRhOiBieXRlcywgbWluX2xlbjogaW50ID0gNikgLT4gbGlzdFtzdHJdOgogICAgc3RyaW5ncyA9IFtdCiAgICBjdXJyZW50ID0gW10KICAgIGZvciBieXRlIGluIGRhdGE6CiAgICAgICAgaWYgMzIgPD0gYnl0ZSA8IDEyNzoKICAgICAgICAgICAgY3VycmVudC5hcHBlbmQoY2hyKGJ5dGUpKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGlmIGxlbihjdXJyZW50KSA+PSBtaW5fbGVuOgogICAgICAgICAgICAgICAgc3RyaW5ncy5hcHBlbmQoIiIuam9pbihjdXJyZW50KSkKICAgICAgICAgICAgY3VycmVudCA9IFtdCiAgICBpZiBsZW4oY3VycmVudCkgPj0gbWluX2xlbjoKICAgICAgICBzdHJpbmdzLmFwcGVuZCgiIi5qb2luKGN1cnJlbnQpKQogICAgcmV0dXJuIHN0cmluZ3MKCgpkZWYgc2VhcmNoX3NvKG5hbWU6IHN0ciwgZGF0YTogYnl0ZXMpIC0+IGRpY3Q6CiAgICBmaW5kaW5ncyA9IHsibmFtZSI6IG5hbWUsICJzaXplIjogbGVuKGRhdGEpLCAidXVpZHMiOiBbXSwKICAgICAgICAgICAgICAgICJzaG9ydF91dWlkcyI6IFtdLCAiYmxlX2tleXdvcmRzIjogW10sICJjb21tYW5kX2J5dGVzIjogW119CgogICAgZm9yIG0gaW4gVVVJRF9SRS5maW5kaXRlcihkYXRhKToKICAgICAgICB1dWlkID0gbS5ncm91cCgwKS5kZWNvZGUoImFzY2lpIikubG93ZXIoKQogICAgICAgIGlmIHV1aWQgbm90IGluIGZpbmRpbmdzWyJ1dWlkcyJdOgogICAgICAgICAgICBmaW5kaW5nc1sidXVpZHMiXS5hcHBlbmQodXVpZCkKCiAgICBmb3Igc2hvcnQgaW4gSU5URVJFU1RJTkdfU0hPUlQ6CiAgICAgICAgaWYgc2hvcnQgaW4gZGF0YToKICAgICAgICAgICAgcyA9IHNob3J0LmRlY29kZSgiYXNjaWkiKS5sb3dlcigpCiAgICAgICAgICAgIGlmIHMgbm90IGluIGZpbmRpbmdzWyJzaG9ydF91dWlkcyJdOgogICAgICAgICAgICAgICAgZmluZGluZ3NbInNob3J0X3V1aWRzIl0uYXBwZW5kKHMpCgogICAgc3RyaW5ncyA9IGV4dHJhY3Rfc3RyaW5ncyhkYXRhKQogICAgZm9yIHMgaW4gc3RyaW5nczoKICAgICAgICBzbCA9IHMubG93ZXIoKQogICAgICAgIGlmIGFueShrdy5sb3dlcigpLmRlY29kZSgpIGluIHNsIGZvciBrdyBpbiBCTEVfS0VZV09SRFMgaWYgbGVuKGt3KSA+IDQpOgogICAgICAgICAgICBpZiBsZW4ocykgPCAyMDAgYW5kIHMgbm90IGluIGZpbmRpbmdzWyJibGVfa2V5d29yZHMiXToKICAgICAgICAgICAgICAgIGZpbmRpbmdzWyJibGVfa2V5d29yZHMiXS5hcHBlbmQocykKCiAgICBmb3Igc2VxIGluIElOVEVSRVNUSU5HX0hFWDoKICAgICAgICBpZiBzZXEgaW4gZGF0YToKICAgICAgICAgICAgZmluZGluZ3NbImNvbW1hbmRfYnl0ZXMiXS5hcHBlbmQoc2VxLmhleCgpKQoKICAgIHJldHVybiBmaW5kaW5ncwoKCmRlZiBtYWluKCk6CiAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWFwayIsIGhlbHA9IlBhdGggdG8ga2FpeXUuYXBrIikKICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCgogICAgYXBrX3BhdGggPSBhcmdzLmFwayBvciBuZXh0KChwIGZvciBwIGluIEFQS19DQU5ESURBVEVTIGlmIG9zLnBhdGguZXhpc3RzKHApKSwgTm9uZSkKICAgIGlmIG5vdCBhcGtfcGF0aDoKICAgICAgICBwcmludCgiW0VSUk9SXSBObyBBUEsgZm91bmQuIFJ1biBleHRyYWN0X2Fwa19wcm90b2NvbC5weSBmaXJzdC4iKQogICAgICAgIHN5cy5leGl0KDEpCgogICAgcHJpbnQoZiJBUEs6IHthcGtfcGF0aH0gICh7b3MucGF0aC5nZXRzaXplKGFwa19wYXRoKTosIH0gYnl0ZXMpXG4iKQoKICAgIGFsbF9maW5kaW5ncyA9IFtdCiAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShhcGtfcGF0aCwgJ3InKSBhcyB6ZjoKICAgICAgICBzb19maWxlcyA9IFtuIGZvciBuIGluIHpmLm5hbWVsaXN0KCkgaWYgbi5lbmRzd2l0aCgnLnNvJyldCiAgICAgICAgcHJpbnQoZiJGb3VuZCB7bGVuKHNvX2ZpbGVzKX0gbmF0aXZlIC5zbyBsaWJyYXJpZXM6IikKICAgICAgICBmb3IgcyBpbiBzb19maWxlczoKICAgICAgICAgICAgcHJpbnQoZiIgIHtzfSAgKHt6Zi5nZXRpbmZvKHMpLmZpbGVfc2l6ZTosIH0gYnl0ZXMpIikKICAgICAgICBwcmludCgpCgogICAgICAgIGZvciBzb19uYW1lIGluIHNvX2ZpbGVzOgogICAgICAgICAgICBwcmludChmIlNlYXJjaGluZyB7c29fbmFtZX0uLi4iKQogICAgICAgICAgICBkYXRhID0gemYucmVhZChzb19uYW1lKQogICAgICAgICAgICBmaW5kaW5ncyA9IHNlYXJjaF9zbyhzb19uYW1lLCBkYXRhKQogICAgICAgICAgICBhbGxfZmluZGluZ3MuYXBwZW5kKGZpbmRpbmdzKQoKICAgICAgICAgICAgaWYgYW55KFtmaW5kaW5nc1sidXVpZHMiXSwgZmluZGluZ3NbInNob3J0X3V1aWRzIl0sCiAgICAgICAgICAgICAgICAgICAgZmluZGluZ3NbImNvbW1hbmRfYnl0ZXMiXSwgZmluZGluZ3NbImJsZV9rZXl3b3JkcyJdXSk6CiAgICAgICAgICAgICAgICBwcmludChmIiAgKioqIEhJVFMgaW4ge3NvX25hbWV9ICoqKiIpCiAgICAgICAgICAgICAgICBpZiBmaW5kaW5nc1sidXVpZHMiXToKICAgICAgICAgICAgICAgICAgICBwcmludChmIiAgVVVJRHM6IikKICAgICAgICAgICAgICAgICAgICBmb3IgdSBpbiBmaW5kaW5nc1sidXVpZHMiXTogcHJpbnQoZiIgICAge3V9IikKICAgICAgICAgICAgICAgIGlmIGZpbmRpbmdzWyJzaG9ydF91dWlkcyJdOgogICAgICAgICAgICAgICAgICAgIHByaW50KGYiICBTaG9ydCBVVUlEczoge2ZpbmRpbmdzWydzaG9ydF91dWlkcyddfSIpCiAgICAgICAgICAgICAgICBpZiBmaW5kaW5nc1siY29tbWFuZF9ieXRlcyJdOgogICAgICAgICAgICAgICAgICAgIHByaW50KGYiICBDb21tYW5kIGJ5dGVzOiB7ZmluZGluZ3NbJ2NvbW1hbmRfYnl0ZXMnXX0iKQogICAgICAgICAgICAgICAgaWYgZmluZGluZ3NbImJsZV9rZXl3b3JkcyJdOgogICAgICAgICAgICAgICAgICAgIHByaW50KGYiICBCTEUgc3RyaW5ncyAoe2xlbihmaW5kaW5nc1snYmxlX2tleXdvcmRzJ10pfSk6IikKICAgICAgICAgICAgICAgICAgICBmb3IgcyBpbiBmaW5kaW5nc1siYmxlX2tleXdvcmRzIl1bOjIwXTogcHJpbnQoZiIgICAge3JlcHIoc319IikKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHByaW50KGYiICBObyBCTEUgaGl0cyIpCgogICAgIyBTdW1tYXJ5CiAgICBwcmludChmIlxueyc9Jyo2MH1cbiAgU1VNTUFSWVXUIH0ncycqNjB9IikKICAgIGFsbF91dWlkcyA9IHt1OiBmWyJuYW1lIl0gZm9yIGYgaW4gYWxsX2ZpbmRpbmdzIGZvciB1IGluIGZbInV1aWRzIl19CiAgICBpZiBhbGxfdXVpZHM6CiAgICAgICAgcHJpbnQoIlxuVVVJRHMgZm91bmQgYWNyb3NzIC5zbyBmaWxlczoiKQogICAgICAgIGZvciB1dWlkLCBsaWIgaW4gYWxsX3V1aWRzLml0ZW1zKCk6CiAgICAgICAgICAgIHByaW50KGYiICB7dXVpZH0gIChpbiB7bGlifSkiKQogICAgZWxzZToKICAgICAgICBwcmludCgiXG5ObyBVVUlEIHN0cmluZ3MgZm91bmQgaW4gYW55IC5zbyBmaWxlLiIpCiAgICAgICAgcHJpbnQoIlRoZSBhcHAgbGlrZWx5IHVzZXMgaGFyZGNvZGVkIGludGVnZXIgY29uc3RhbnRzIGZvciBVVUlEcy4iKQogICAgICAgIHByaW50KCJcbk5leHQgc3RlcCAtIHJ1biB0aGUgaW50ZXJhY3RpdmUgcHJvYmU6IikKICAgICAgICBwcmludCgiICBweXRob24gc2Nhbm5lci9ibGVfc2Nhbm5lci5weSAtLXByb2JlIikKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgbWFpbigpCg==