{"id":13754876,"url":"https://github.com/xorpd/fcatalog_client","last_synced_at":"2025-05-10T00:31:14.280Z","repository":{"id":82059996,"uuid":"42253074","full_name":"xorpd/fcatalog_client","owner":"xorpd","description":"fcatalog idapython client","archived":false,"fork":false,"pushed_at":"2016-08-19T15:09:58.000Z","size":59,"stargazers_count":27,"open_issues_count":1,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-16T08:33:58.399Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xorpd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-10T15:26:36.000Z","updated_at":"2024-05-31T10:41:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"f335d25b-a3cd-4429-8573-cd76307a3311","html_url":"https://github.com/xorpd/fcatalog_client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorpd%2Ffcatalog_client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorpd%2Ffcatalog_client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorpd%2Ffcatalog_client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xorpd%2Ffcatalog_client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xorpd","download_url":"https://codeload.github.com/xorpd/fcatalog_client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253346390,"owners_count":21894263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T10:00:35.720Z","updated_at":"2025-05-10T00:31:13.998Z","avatar_url":"https://github.com/xorpd.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"02088f4884be6c9effb0f1e9a3795e58\"\u003e\u003c/a\u003e签名(FLIRT等)\u0026\u0026比较(Diff)\u0026\u0026匹配"],"sub_categories":["\u003ca id=\"cf04b98ea9da0056c055e2050da980c1\"\u003e\u003c/a\u003e未分类"],"readme":"FCatalog Client (IDA Plugin)\n============================\n\nThis is the FCatalog Client IDA Plugin.\nFCatalog is the Functions Catalog. It is a tool for quickly finding similar\nfunctions from a large database of functions.\n\nYou can find the [fcatalog_server repository here](https://github.com/xorpd/fcatalog_server).\n\nRequirements:\n-------------\n\n- You need IDA (Interactive Disassembler by Hex Rays) installed. I tested this\n  only on IDA of version \u003e= 6.\n\n- Python2.7. I think that it should come together with IDA. Note that this code\n  will not work with Python3. Sorry about that, IDA doesn't support Python3\n  scripting yet.\n\n- I tested this only on Windows 7. It might work on linux, but also might not.\n\n- You will need a working [fcatalog_server](https://github.com/xorpd/fcatalog_server).\n\n\nInstallation\n------------\nCopy the fcatalog_client directory and fcatalog_plugin.py to the plugins\ndirectory of your IDA installation. Then restart IDA.\n\nMain Functions\n--------------\n\nAfter the installation, when you open any file with IDA you should see new menu\nitems under the **Edit** menu: \n- FCatalog: Clean IDB\n- FCatalog: Find Similars\n- FCatalog: Commit Functions\n- FCatalog: Configure\n\nFirst, configure your client by clicking on **FCatalog: Configure**. A dialog\nbox will ask you for the host and port of your FCatalog server. You will also\nneed to specify a database name. You can pick any database name that you want.\nIf it does not exist, it will be created automatically.\n\n**FCatalog: Commit Functions** will save all your good \"reversed\" functions into\nthe remote database. Functions are considered good and \"reversed\" if all of the\nfollowing are true:\n\n- They have a meaningful name (Any name that doesn't contain MAYBE or RELATED)\n- They weren't acquired from a previous 'FCatalog: Find Similars' operation.\n- They are long enough (At least 0x40 bytes) \n- They are not fragmented (Might be implemented in the future).\n\nThe IDA console should show you which functions were sent to the database.\n\n**FCatalog: Find Similars** will search for every \"unreversed\" function inside\nyour IDB the most similar known function from the functions catalog database.\nIt will then rename the function according to the name from the functions\ncatalog database.\n\nThe new name will be of the format:\nFCATALOG__{grade}__{function_name}\ngrade is the similarity score, between 0 and 16. 0 means not similar at all, 16\nmeans very similar.\n\n\"unreversed functions\" are functions that don't have any meaningful name, or\nthey have a name picked by the fcatalog system.\n\n**FCatalog: Clean IDB** will clean your IDB from any fcatalog function names.\nIf you suddenly got scared from all the new function names, you can always\nclick on this button.\n\n\nTests\n-----\nThere are basic offline tests in the test directory. You can run them with\nunittest as follows:\n\n        c:\\python27\\python.exe -m unittest discover\n\n\nThere is one online test (Runs against a real server). It is\ntests/live_server.py. It should be run as follows:\n\n        c:\\python27\\python.exe -m fcatalog_client.tests.live_server \u003chost\u003e \u003cport\u003e\n\nWebsite\n-------\nVisit me at http://www.xorpd.net\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorpd%2Ffcatalog_client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxorpd%2Ffcatalog_client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorpd%2Ffcatalog_client/lists"}