{"id":19878625,"url":"https://github.com/ironsource/portable-executable","last_synced_at":"2025-03-01T02:33:20.918Z","repository":{"id":57148387,"uuid":"71221895","full_name":"ironSource/portable-executable","owner":"ironSource","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-23T19:07:24.000Z","size":303,"stargazers_count":5,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-08T21:16:19.069Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ironSource.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}},"created_at":"2016-10-18T07:42:07.000Z","updated_at":"2020-11-25T10:10:52.000Z","dependencies_parsed_at":"2023-07-25T00:01:01.585Z","dependency_job_id":"ff5a596c-c201-487b-8f05-82e282587aa8","html_url":"https://github.com/ironSource/portable-executable","commit_stats":null,"previous_names":["dominictarr/portable-executable"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironSource%2Fportable-executable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironSource%2Fportable-executable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironSource%2Fportable-executable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ironSource%2Fportable-executable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ironSource","download_url":"https://codeload.github.com/ironSource/portable-executable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241308917,"owners_count":19941719,"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-12T17:06:09.646Z","updated_at":"2025-03-01T02:33:20.874Z","avatar_url":"https://github.com/ironSource.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# portable-executable\n\nparse portable-executable files\n\n## example\n\nparse a portable executable and dump to json.\n\n``` js\nvar fs = require('fs')\nvar PE = require('portable-executable')\n\nvar pe = PE.PortableExecutable(fs.readFileSync(YOUR_FILE_EXE))\n\nconsole.log(JSON.stringify(pe))\n```\n\nportable executable is a interesting, complex format.\n\nexample output may resemble:\n```\n{\"magicNumber\":{\n  \"type\":\"Buffer\",\"data\":[77,90]},\n  \"bytesOnLastPageOfFile\":144,\"pagesInFile\":3,\n  \"relocations\":0,\"sizeOfHeaderInParagraphs\":4,\n  \"minimumExtraParagraphsNeeded\":0,\"maximumExtraParagraphsNeeded\":65535,\n  \"initialSS\":0,\"initialSP\":184,\"checksum\":0,\"initialIP\":0,\n  \"initialCS\":0,\"pointerToRelocationTable\":64,\"overlayNumber\":0,\n  \"reservedWorlds\":{\"type\":\"Buffer\",\"data\":[0,0,0,0,0,0,0,0]},\n  \"oemIdentifier\":0,\"oemInformation\":0,\"reservedWords2\":{\n      \"type\":\"Buffer\",\"data\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]\n  },\n  \"pointerToNewHeader\":256,\"coffHeader\":{\n    \"machine\":332,\"sections\":4,\"timestamp\":1456776247,\n    \"symbolPointer\":0,\"symbols\":0,\"optionalHeaderSize\":224,\n    \"characteristics\":271\n  },\n  \"optionalHeader\":{\n    \"majorLinkerVersion\":7,\n    \"minorLinkerVersion\":10,\n    \"sizeOfCode\":376832,\n    \"sizeOfInitializedData\":159744,\n    \"sizeOfUninitializedData\":0,\n    \"pointerToEntryPoint\":348400,\n    \"baseOfCode\":4096,\n    \"baseOfData\":380928,\n    \"imageBase\":4194304,\n    \"sectionAlignment\":4096,\n    \"fileAlignment\":4096,\n    \"majorOSVersion\":4,\n    \"minorOSVersion\":0,\n    \"majorImageVersion\":0,\n    \"minorImageVersion\":0,\n    \"majorSubsystemVersion\":4,\n    \"minorSubsystemVersion\":0,\n    \"reserved\":{\n      \"type\":\"Buffer\",\n      \"data\":[0,0,0,0]\n    },\n    \"sizeOfImage\":540672,\n    \"sizeOfHeaders\":4096,\n    \"checksum\":564231,\n    \"subsystem\":2,\n    \"dllCharacteristics\":0,\n    \"sizeOfStackReserve\":1048576,\n    \"sizeOfStackCommit\":4096,\n    \"sizeOfHeapReserve\":1048576,\n    \"sizeOfHeapCommit\":4096,\"loaderFlags\":0,\"numberOfRvaAndSizes\":16,\n    \"exportTable\":{\"pointer\":0,\"size\":0},\n    \"importTable\":{\"pointer\":493848,\"size\":240},\n    \"resourceTable\":{\"pointer\":528384,\"size\":11968},\n    \"exceptionTable\":{\"pointer\":0,\"size\":0},\n    \"certificateTable\":{\"pointer\":524288,\"size\":7080},\n    \"baseRelocationTable\":{\"pointer\":0,\"size\":0},\n    \"debug\":{\"pointer\":0,\"size\":0},\n    \"architecture\":{\"pointer\":0,\"size\":0},\n    \"globalPointer\":{\"pointer\":0,\"size\":0},\n    \"tlsTable\":{\"pointer\":0,\"size\":0},\n    \"loadConfigTable\":{\"pointer\":493744,\"size\":72},\n    \"boundImport\":{\"pointer\":0,\"size\":0},\n    \"importAddressTable\":{\"pointer\":380928,\"size\":1292},\n    \"delayImportDescriptor\":{\"pointer\":0,\"size\":0},\n    \"comRuntimeHeader\":{\"pointer\":0,\"size\":0},\n    \"reserved2\":{\"type\":\"Buffer\",\"data\":[0,0,0,0,0,0,0,0]}},\n    \"sections\":[{\n      \"name\":\".text\",\"virtualSize\":376705,\n      \"virtualAddress\":4096,\"sizeOfRawData\":376832,\n      \"pointerToRawData\":4096,\"pointerToRelocations\":0,\n      \"pointerToLineNumbers\":0,\"numberOfRelocations\":0,\n      \"numberOfLineNumbers\":0,\"characteristics\":1610612768,\n      \"data\":{\"type\":\"Buffer\",\"data\":[86,106,12,.....\n//and so on...\n````\n\nalso see\n\n``` js\nvar fs = require('fs')\nvar PE = require('portable-executable')\n\nconsole.log(JSON.stringify(PE.strings(fs.readFileSync(YOUR_FILE_EXE)))\n```\n\nwhich might output:\n\n```\n  [\"!This program cannot be run in DOS mode.\",\"Rich\",\".text\",\"`.rdata\",\"@.data\",\".ndata\",\".rsrc\",\"5P?B\",\"5@p@\"\n,\"h@7B\",\";5l?B\",\";5l?B\",\" s495l?B\",\";5l?B\",\"=l?B\",\"5h?B\",\"5,7B\",\"5\\\\r@\",\"tTj\\\\V\",\"uv9]\",\"tDH;\",\"PShr\",\"jHjZ\",\n\"t=9]\",\"PSWV\",\"SQSSSPW\",\"VQSPW\",\"QVPW\",\"SQVPW\",\"SQPh\",\"u_9]\",\"t@;u\",\"5h?B\",\"t#9]\",\"5$p@\",\"@_^[\",\n\"PjdQ\",\"v#Vhn+@\",\"5@?B\",\"(SV3\",\"=T?B\",\"Instu`\",\"softuW\",\"NulluN\",\"YtS9]\",\"5P?B\",\"j@Vh`?B\",\"tC+E\",\n\"t;9E\",\"t19u\",\"tS9u\",\"SUVW3\",\"D$8h`\",\"h@7B\",\"8/u7@\",\"8NCRCu\",\" /D=t\",\"tMSU\",\"\u003e _?=t\",\"t*Vh\",\"t$ h\",\n\"t-SV\",\"D$ Pj(\",\"D$(Ph,\",\"D$,SPS\",\"Vj%SSS\",\"5P?B\",\"SWSh$s@\",\"SWhBs@\",\"tT\u003c\\\"u\",\"5@?B\",\"SPSj0\",\"5@?B\",\n\"D$(+D$ SSP\",\"D$0+D$(P\",\"t$0h\",\"5@?B\",\"_^][\",\"SUVW\",\"h@7B\",\"5h?B\",\"_^][\",\"|$$3\",\"UUUUW\",\"D$,H\",\n\"t$,VW\",\"u49-\",\"t$0h\",\"t$0S\",\"|$$;\",\"58r@\",\"=H?B\",\"5(7B\",\"5`?B\",\"D$,t\",\"h@7B\",\"5@?B\",\"t$ U\",\n\"-H?B\",\"_^][\",\"5H?B\",\"5H?B\",\"s8j#\",\"5H?B\",\"5H?B\",\"u Pj\",\"t0Pj\",\"PWVh\",\"58r@\",\"5@?B\",\"PWhC\",\n\"SPhQ\",\"9=l?B\",\";=l?B\",\"uv9E\",\"p\\\\Wh\",\"WWhG\",\"WPhP\",\"j [S\",\"SWh \",\"WQhN\",\"9=l?B\",\"5\\\\r@\",\" u}h\",\n\"uDSSh\",\"5h?B\",\"=l?B\",\"@SVW\",\"=$7B\",\"=8r@\",\"PPh6\",\"PhVO@\",\"5\\\\r@\",\"t\u0026jx\",\"5H?B\",\"SPQh\",\"FFC;]\",\n\"h@%B\",\"PPPPPP\",\"th\u003c.u\",\"t^VS\",\"tM9u\",\"9\\\\\\\\t\",\";:\\\\u\",\"?\\\\\\\\u\",\"^j\\\\PN\",\"Wjd_O\",\"SUVWj\",\"PWVU\",\n\"t[;|$\",\"PPPU\",\"PWVU\",\"_^][\",\"SVW3\",\"@PWSh\",\"$uhh\",\"5H?B\",\"5H?B\",\"5H?B\",\"_^[t\",\"v\\\"Ph\",\"Vu-3\",\n\"SVWj\\\"\",\"\u003c6;}\",\"UXTHEME\",\"USERENV\",\"SETUPAPI\",\"APPHELP\",\"PROPSYS\",\"DWMAPI\",\"CRYPTBASE\",\"OLEACC\",\n\"CLBCATQ\",\"RichEdit\",\"RichEdit20A\",\"RichEd32\",\"RichEd20\",\".DEFAULT\\\\Control Panel\\\\International\",\n\"Control Panel\\\\Desktop\\\\ResourceLocale\",\"[Rename]\",\"Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\",\n\"\\\\Microsoft\\\\Internet Explorer\\\\Quick Launch\",\"MulDiv\",\"DeleteFileA\",\"FindFirstFileA\",\n\"FindNextFileA\",\"FindClose\",\"SetFilePointer\",\"ReadFile\",\"WriteFile\",\"GetPrivateProfileStringA\",\n\"WritePrivateProfileStringA\",\"MultiByteToWideChar\",\"FreeLibrary\",\"GetProcAddress\",\"LoadLibraryExA\",\n\"GetModuleHandleA\",\"GetExitCodeProcess\",\"WaitForSingleObject\",\"GlobalAlloc\",\"GlobalFree\",\n\"ExpandEnvironmentStringsA\",\"lstrcmpA\",\"lstrcmpiA\",\"CloseHandle\",\"SetFileTime\",\"CompareFileTime\",\n... etc ...\n```\n\n## License\n\nMIT\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironsource%2Fportable-executable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fironsource%2Fportable-executable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironsource%2Fportable-executable/lists"}