{"id":19806604,"url":"https://github.com/reversingid/memorylayout-exercise","last_synced_at":"2026-06-16T09:31:52.005Z","repository":{"id":115730018,"uuid":"140007457","full_name":"ReversingID/MemoryLayout-Exercise","owner":"ReversingID","description":"Open repository for structure and layout of object in memory for reverse engineering purpose.","archived":false,"fork":false,"pushed_at":"2021-02-21T15:18:29.000Z","size":22,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T18:00:41.161Z","etag":null,"topics":["memory"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReversingID.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-07-06T16:26:45.000Z","updated_at":"2023-10-04T18:24:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf05406c-df13-431c-a986-3560795a9c1d","html_url":"https://github.com/ReversingID/MemoryLayout-Exercise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ReversingID/MemoryLayout-Exercise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReversingID%2FMemoryLayout-Exercise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReversingID%2FMemoryLayout-Exercise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReversingID%2FMemoryLayout-Exercise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReversingID%2FMemoryLayout-Exercise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReversingID","download_url":"https://codeload.github.com/ReversingID/MemoryLayout-Exercise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReversingID%2FMemoryLayout-Exercise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34400451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["memory"],"created_at":"2024-11-12T09:07:59.616Z","updated_at":"2026-06-16T09:31:51.986Z","avatar_url":"https://github.com/ReversingID.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memory-Layout Exercise\n\nOpen repository for structure and layout of object in memory for reverse engineering purpose.\n\n### Selayang Pandang\n\nRepository ini digunakan untuk menghimpun informasi dan pengetahuan tentang representasi objek di memory dan mekanisme yang berhubungan dengannya. Beberapa contoh binary disertakan di dalam repository sebagai latihan untuk memperdalam konsep.\n\nRepository ini merupakan repository bebas dan terbuka. Siapapun, baik internal maupun eksternal komunitas Reversing.ID, dapat mengakses dan memanfaatkan konten ini.\n\n### Representasi Objek\n\nSetiap objek yang diinstansiasi akan menempati ruang memory. Besarnya ruang memory yang dialokasikan bergantung kepada banyaknya variabel (field) yang dideklarasikan serta metadata dari class. Beberapa bahasa dan compiler mungkin merepresentasikan objek dengan cara berbeda atau memiliki karakteristik tertentu.\n\n### Struktur dan Konten \n\nRepository ini terbagi menjadi beberapa direktori sesuai dengan bahasa pemrograman yang digunakan. Masing-masing bahasa memiliki representasi yang berbeda sehingga pembahasan perlu dilakukan spesifik terhadap bahasa tersebut.\n\nDi setiap direktori akan terdapat beberapa direktori yang akan melakukan pembahasan secara spesifik terhadap suatu teknis tertentu. Beberapa topik yang menjadi cakupan pembahasan antara lain:\n\n* memory layout\n* object-creation dan object-destruction\n* instantiation order\n* vtable (virtual table) atau vmt (virtual method table)\n* Run-Time Type Identifier\n\n### Exercise\n\nSetiap sample merupakan sebuah exercise dengan objektif tertentu. Masing-masing sample akan memiliki instruksi untuk melakukan kompilasi dan beberapa pertanyaan yang harus dijawab saat melakukan analisis. Gunakan source code sebagai perbandingan untuk mengidentifikasi field yang sesuai.\n\nSetiap sample akan melakukan dump raw binary saat runtime. Dump dilakukan terhadap objek dan struktur terkait class di memory. Objektif dari setiap exercise adalah mengenali layout memory dari setiap objek melalui analisis dump.\n\nAnalisis dapat pula dilakukan dengan melakukan debugging.\n\n### Bagaimana Cara Berkontribusi?\n\nIni adalah projek terbuka.\n\nKamu bisa memberikan sumbangan berupa kode yang berkaitan dengan implementasi bahasa tertentu, baik yang telah ada maupun belum dicakup dalam repository ini. Kamu juga bisa memberikan referensi=referensi terkait yang bisa digunakan untuk menambah pemahaman terhadap materi.\n\nYang dapat kamu lakukan:\n\n- melakukan pull request.\n- mengirimkan email ke pengurus [at] reversing.id\n- memberi tahu di telegram @ReversingID\n\nDiharapkan agar segala referensi yang ada menggunakan Bahasa Indonesia sebagai sarana penyampaian informasi.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freversingid%2Fmemorylayout-exercise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freversingid%2Fmemorylayout-exercise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freversingid%2Fmemorylayout-exercise/lists"}