{"id":18864781,"url":"https://github.com/hackndo/disasbeautifier","last_synced_at":"2026-02-11T15:30:16.801Z","repository":{"id":92732104,"uuid":"43358851","full_name":"Hackndo/disasbeautifier","owner":"Hackndo","description":"gdb disas output beautifier","archived":false,"fork":false,"pushed_at":"2016-11-16T08:41:56.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-30T21:41:59.858Z","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-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hackndo.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-29T09:45:13.000Z","updated_at":"2017-08-07T18:25:25.000Z","dependencies_parsed_at":"2023-06-25T23:39:01.258Z","dependency_job_id":null,"html_url":"https://github.com/Hackndo/disasbeautifier","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/Hackndo%2Fdisasbeautifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackndo%2Fdisasbeautifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackndo%2Fdisasbeautifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackndo%2Fdisasbeautifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hackndo","download_url":"https://codeload.github.com/Hackndo/disasbeautifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239808522,"owners_count":19700451,"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-08T04:44:02.084Z","updated_at":"2026-02-11T15:30:16.770Z","avatar_url":"https://github.com/Hackndo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DisasBeautifier\n\nDescription\n===========\n\nTake `disas` ouput from gdb (either intel or at\u0026t syntax), parse it and write it in output_file\n\nUsage\n=====\n\n```sh\n$ git clone git@github.com:Hackndo/disasbeautifier.git\n$ cd disasbeautifier\n$ chmod +x disasbeautifier.py\n$ ./disasbeautifier.py input_file output_file\n```\n\nExample\n=======\n\nInput file `input.disas`\n\n```\n   0x0804844c \u003c+0\u003e:  push   ebp\n   0x0804844d \u003c+1\u003e:  mov    ebp,esp\n   0x0804844f \u003c+3\u003e:  sub    esp,0x28\n   0x08048452 \u003c+6\u003e:  mov    eax,DWORD PTR [ebp+0x8]\n   0x08048455 \u003c+9\u003e:  mov    DWORD PTR [esp+0x4],eax\n   0x08048459 \u003c+13\u003e: lea    eax,[ebp-0x10]\n   0x0804845c \u003c+16\u003e: mov    DWORD PTR [esp],eax\n   0x0804845f \u003c+19\u003e: call   0x8048320 \u003cstrcpy@plt\u003e\n   0x08048464 \u003c+24\u003e: lea    eax,[ebp-0x10]\n   0x08048467 \u003c+27\u003e: mov    DWORD PTR [esp],eax\n   0x0804846a \u003c+30\u003e: call   0x8048330 \u003cputs@plt\u003e\n   0x0804846f \u003c+35\u003e: leave  \n   0x08048470 \u003c+36\u003e: ret\n   0x08048471 \u003c+0\u003e:  push   ebp\n   0x08048472 \u003c+1\u003e:  mov    ebp,esp\n   0x08048474 \u003c+3\u003e:  and    esp,0xfffffff0\n   0x08048477 \u003c+6\u003e:  sub    esp,0x10\n   0x0804847a \u003c+9\u003e:  cmp    DWORD PTR [ebp+0x8],0x2\n   0x0804847e \u003c+13\u003e: je     0x804848e \u003cmain+29\u003e\n   0x08048480 \u003c+15\u003e: mov    DWORD PTR [esp],0x8048540\n   0x08048487 \u003c+22\u003e: call   0x8048330 \u003cputs@plt\u003e\n   0x0804848c \u003c+27\u003e: jmp    0x804849e \u003cmain+45\u003e\n   0x0804848e \u003c+29\u003e: mov    eax,DWORD PTR [ebp+0xc]\n   0x08048491 \u003c+32\u003e: add    eax,0x4\n   0x08048494 \u003c+35\u003e: mov    eax,DWORD PTR [eax]\n   0x08048496 \u003c+37\u003e: mov    DWORD PTR [esp],eax\n   0x08048499 \u003c+40\u003e: call   0x804844c \u003cfunc\u003e\n   0x0804849e \u003c+45\u003e: mov    eax,0x0\n   0x080484a3 \u003c+50\u003e: leave  \n   0x080484a4 \u003c+51\u003e: ret\n```\n\n```sh\n$ ./disasbeautifier.py input.disas output.disas\n```\n\nOuput file `output.disas`\n\n```asm\n      0x0804844c \u003c+0\u003e:  push   ebp                        ; \n      0x0804844d \u003c+1\u003e:  mov    ebp,esp                    ; \n      0x0804844f \u003c+3\u003e:  sub    esp,0x28                   ; \n      0x08048452 \u003c+6\u003e:  mov    eax,DWORD PTR [ebp+0x8]    ; \n      0x08048455 \u003c+9\u003e:  mov    DWORD PTR [esp+0x4],eax    ; \n      0x08048459 \u003c+13\u003e: lea    eax,[ebp-0x10]             ; \n      0x0804845c \u003c+16\u003e: mov    DWORD PTR [esp],eax        ; \n      0x0804845f \u003c+19\u003e: call   0x8048320 \u003cstrcpy@plt\u003e     ; strcpy()\n      0x08048464 \u003c+24\u003e: lea    eax,[ebp-0x10]             ; \n      0x08048467 \u003c+27\u003e: mov    DWORD PTR [esp],eax        ; \n      0x0804846a \u003c+30\u003e: call   0x8048330 \u003cputs@plt\u003e       ; puts()\n      0x0804846f \u003c+35\u003e: leave                             ; \n      0x08048470 \u003c+36\u003e: ret                               ; \n      \n      ***************\n      \n      0x08048471 \u003c+0\u003e:  push   ebp                        ; \n      0x08048472 \u003c+1\u003e:  mov    ebp,esp                    ; \n      0x08048474 \u003c+3\u003e:  and    esp,0xfffffff0             ; \n      0x08048477 \u003c+6\u003e:  sub    esp,0x10                   ; \n      0x0804847a \u003c+9\u003e:  cmp    DWORD PTR [ebp+0x8],0x2    ; \n+---- 0x0804847e \u003c+13\u003e: je     0x804848e \u003cmain+29\u003e        ; \n|     \n|     0x08048480 \u003c+15\u003e: mov    DWORD PTR [esp],0x8048540  ; \n|     0x08048487 \u003c+22\u003e: call   0x8048330 \u003cputs@plt\u003e       ; puts()\n| +-- 0x0804848c \u003c+27\u003e: jmp    0x804849e \u003cmain+45\u003e        ; \n| |   \n+---\u003e 0x0804848e \u003c+29\u003e: mov    eax,DWORD PTR [ebp+0xc]    ; \n  |   0x08048491 \u003c+32\u003e: add    eax,0x4                    ; \n  |   0x08048494 \u003c+35\u003e: mov    eax,DWORD PTR [eax]        ; \n  |   0x08048496 \u003c+37\u003e: mov    DWORD PTR [esp],eax        ; \n  |   0x08048499 \u003c+40\u003e: call   0x804844c \u003cfunc\u003e           ; func()\n  +-\u003e 0x0804849e \u003c+45\u003e: mov    eax,0x0                    ; \n      0x080484a3 \u003c+50\u003e: leave                             ; \n      0x080484a4 \u003c+51\u003e: ret                               ; \n      \n      ***************\n```\n\nContribute\n==========\n\n* Parse call arguments\n* Detect functions\n* Detect loops\n* Draw arrows for jumps\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackndo%2Fdisasbeautifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackndo%2Fdisasbeautifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackndo%2Fdisasbeautifier/lists"}