{"id":18275794,"url":"https://github.com/davideuler/pefile","last_synced_at":"2025-04-09T04:13:59.599Z","repository":{"id":30220004,"uuid":"33771044","full_name":"davideuler/pefile","owner":"davideuler","description":"Automatically exported from code.google.com/p/pefile","archived":false,"fork":false,"pushed_at":"2015-04-11T10:04:30.000Z","size":524,"stargazers_count":0,"open_issues_count":16,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T22:32:34.700Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davideuler.png","metadata":{"files":{"readme":"README","changelog":"CHANGES_up_to_1.2.6","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-11T10:01:55.000Z","updated_at":"2015-04-11T10:02:54.000Z","dependencies_parsed_at":"2022-09-07T20:31:46.579Z","dependency_job_id":null,"html_url":"https://github.com/davideuler/pefile","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davideuler%2Fpefile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davideuler%2Fpefile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davideuler%2Fpefile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davideuler%2Fpefile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davideuler","download_url":"https://codeload.github.com/davideuler/pefile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247974731,"owners_count":21026742,"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-11-05T12:14:06.446Z","updated_at":"2025-04-09T04:13:59.577Z","avatar_url":"https://github.com/davideuler.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n--------------------------------------------------------------------\n             pefile - Portable Executable reader module\n--------------------------------------------------------------------\n\n\nINTRODUCTION\n\npefile will allow to access from any Python script all (or most) of the contents\nof a given PE file.\n\nThe structures defined in the Windows header files will be accessible as the\nPE instance attributes and will have the same names as defined there.\n(The main structures will have the standard capitalized names and will be\nattributes of the PE instance. Their members will be attributes.)\n\nOther attributes and data, which require further processing but are very useful\nwill be available as lowercase attributes. Some of those are, the imported and\nexported symbols and the sections, with direct access to their data (if any) and\nconvenient methods to retrieve data based on the address as if the file were\nloaded, instead of needing to dig the offsets into the file.\n\nWRITTING SUPPORT\n\nStarting from pefile 1.2 it's possible to write back any changes done to the PE\nfile. One has to be careful with this functionality as it will not be very\nintelligent reconstructing the PE file. That is, it will not handle displacing\nstructures if that would be needed because a new section has been added.\nThe rule of thumb is, if there's room for an additional header/structure to fit\nthen there'll be no problem and pefile will write it.\nAll other modifications, i.e. changing individual values in header/structure\nmembers should work well.\nOne possible useful application of this could be to correct malformed headers\nused by some malware in order to cause certain analysis tools to malfunction.\n\n\nAVAILABILITY\n\nLast versions are available at:\n\nhttp://dkbza.org/pefile.html\n\n\nINSTALLATION/USAGE\n\nJust importing it should suffice. The module should be endianness independent and\nit's known to work on OS X, Windows, and Linux.\n\n\nTODO\n\nThere might be some obscure info which is not readily accessible, this may be\ndue to my ignorance or laziness. Patches or suggestions are, as usual, welcomed.\n\nThinks known to be missing so far:\n\n-Reading and processing the exceptions directory entry. (Architecture dependent\ninfo)\n\nBUGS\n\nGiven the amount of information embedded in the PE file format it is difficult\nto test all the data retrieved thoroughly. I did my best trying and verifying\nthe accuracy of all the parsing. Most of the basic data has been tested by using\nthis module, so no outrageously obvious problems should exist. Any feedback on\ninconsistent or faulty behavior will be welcome.\n\n-------------------------------------------------------------------------\nCopyright (c) 2005-2013 Ero Carrera \u003cero@dkbza.org\u003e. All rights reserved.\n-------------------------------------------------------------------------\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavideuler%2Fpefile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavideuler%2Fpefile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavideuler%2Fpefile/lists"}