{"id":18797102,"url":"https://github.com/bc100dev/osintgramcxx","last_synced_at":"2025-10-28T05:04:13.300Z","repository":{"id":261668254,"uuid":"852272608","full_name":"BC100Dev/OsintgramCXX","owner":"BC100Dev","description":"A reimplementation of Osintgram, but in C++","archived":false,"fork":false,"pushed_at":"2024-12-10T16:21:06.000Z","size":241,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-25T19:55:32.657Z","etag":null,"topics":["cli","cli-app","command-line","command-line-interface","command-line-tool","cpp","data-collection","instagram","linux-app","linux-cli","networking","open-source","osint","osint-tool","osintgram","shell-prompt","windows-app","windows-cli"],"latest_commit_sha":null,"homepage":"","language":"C++","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/BC100Dev.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":"2024-09-04T14:23:57.000Z","updated_at":"2024-12-10T16:21:11.000Z","dependencies_parsed_at":"2024-11-07T19:48:06.239Z","dependency_job_id":"2a20c8b9-fa44-4f39-b4f2-d825b29495c4","html_url":"https://github.com/BC100Dev/OsintgramCXX","commit_stats":null,"previous_names":["bc100dev/osintgramcxx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BC100Dev%2FOsintgramCXX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BC100Dev%2FOsintgramCXX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BC100Dev%2FOsintgramCXX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BC100Dev%2FOsintgramCXX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BC100Dev","download_url":"https://codeload.github.com/BC100Dev/OsintgramCXX/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231768722,"owners_count":18423792,"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":["cli","cli-app","command-line","command-line-interface","command-line-tool","cpp","data-collection","instagram","linux-app","linux-cli","networking","open-source","osint","osint-tool","osintgram","shell-prompt","windows-app","windows-cli"],"created_at":"2024-11-07T22:07:06.868Z","updated_at":"2025-10-28T05:04:13.293Z","avatar_url":"https://github.com/BC100Dev.png","language":"C++","readme":"# OsintgramCXX\n```text\n   ___     _       _                            \n  /___\\___(_)_ __ | |_ __ _ _ __ __ _ _ __ ___  \n //  // __| | '_ \\| __/ _` | '__/ _` | '_ ` _ \\ \n/ \\_//\\__ \\ | | | | || (_| | | | (_| | | | | | |\n\\___/ |___/_|_| |_|\\__\\__, |_|  \\__,_|_| |_| |_|\n                      |___/                     \n```\n\nEver since the development on [the original Project](https://github.com/Datalux/Osintgram)\nhas stopped and the Instagram API being changed constantly, I have decided to take care\nof this project and rewrite most to all components by myself. Well... except for the\nNetworking part, me and Networking aren't the best friends... just yet. Wait, until I\nfinish one of the most insane projects known to man. A hint, it's on my GitHub profile.\n\n## Update from Datalux himself\nAlright, so apparently, the original project is not completely abandoned. No, I was not\ncontacted by anyone to say that it is still alive in any way, don't even try to make me\ndrop my entire Inbox in here. Although I did attempt to reach out to him with no luck...\nyes, again.\n\nIf you guys weren't up-to-speed, there has been some updates regarding that project. Two\nPRs (Pull Requests) have been accepted and merged, along with that man himself creating a\nnew repo. Considering that he hasn't responded and refuses to talk and barely has the time\nto talk to people or something (if that is his intention), I made a theory that he might\nalso be in an apprenticeship and potentially doing / preparing himself for the final exams,\nclarifying on why there are barely any updates and no responses from this man alone.\n\nIn case you guys are lazy to check out that repo alone, here I provide a screenshot of the\nrecent commit logs happening:\n\n![Screenshot of the Commit History on Osintgram](Docs/Images/Osintgram_CommitHistory.jpg)\n\n---\n\n## Use cases\nNo use cases just yet. Matter of fact, this project is still in active development, and I\nam not planning to abandon this project, just like [Datalux](https://github.com/Datalux)\ndid. However, I will be doing Announcements and Polls, in case I would be disclosing more\ninformation.\n\nAlongside with that, since people were asking me about how to use this tool (you may see\nan [example here](https://github.com/BC100Dev/osintgram4j/issues/16) from the previous\nversion). No offense to people waiting eagerly for the tool to come out, but since actual\ndevelopment (without AI) does take some time, this won't be a \"quick coding session\". This\ndoes take time, but I will be updating you guys on any updates.\n\nHowever, what I can describe on what features are implemented (or will be) in here are these:\n- **Modding Support**: Add your own Hooks and Commands to OsintgramCXX itself (requires C/C++\n  coding skills)\n- **DSI** (Device Spoofing Information): Spoofs a device for network calls to Instagram (what\n  is an OSINT tool for the community without spoofing some shit)\n- **Manual Interaction**: Using this tool means that you have more control than having most\n  actions automated (e.g. automated login)\n- **Proxies \u0026 Proxychains**: Allows you to connect to multiple Proxies at once, allowing a\n  connection through several servers\n- **Multi-Session Interaction**: Target multiple profiles at once without having to automate\n  more things\n\nDoes the original version of this tool have most of those things prebuilt already? I don't\nthink so. Let me cook and you won't be disappointed.\n\n---\n\n## Disclaimer \u0026 Privacy Policy\nOsintgramCXX, along with any other software, is merely intended for ethical and legal use\nonly. By the definition of OSINT, the use of this tool is to collect publicly available\ninformation. This means that commands from the original version (like fetching E-Mail\naddresses and phone numbers) are not copied over for legal reasons. By default, Instagram\ndoes NOT expose sensitive information to the public, unless the person associated with the\naccount shares information. That information may include a publicly-known business E-Mail\naddress, business phone number or possibly even the physical business address tied to the\nperson / business.\n\nOther developers, myself included, do not support unethical activities like black-hat\nhacking (the unlawful version of hacking) and other malicious actions. Always follow\nrelevant laws and the Terms of Service of the perspective platform. Developers can still\nbe held accountable by designing such tools in the first place, so deploy this tool under\nlegal and good intentions. We do not want a lawsuit, neither any cease of desist letters.\n\nBy using this tool, you acknowledge that:\n- **Responsibility**: You are accountable for the actions you take\n- **Ethical Use**: You do not misuse this tool to your advantage in harassing people\n- **Actions getting logged**: Instagram will log each action you take using this tool\n- **Liability**: we, the developers, are not liable for the consequences you take by\n  potentially misusing this tool.\n- **Terms and Imprint**: using this tool, you also break the Instagram's [Terms of Service\n  / Imprint](https://help.instagram.com/581066165581870/?locale=en_US)\n\n---\n\n## Build Process\nTo build the tool, you will need to install a few tools. Those tools include:\n- CMake\n- C++ compilers\n- VCPKG dependencies (tar, unzip, zip, curl)\n\nFor this, using your package manager, install these following packages. This may vary on\nyour distribution. For Debian (Termux included), you will be using `apt`. Your full\ncommand will be:\n\n```shell\n$ sudo apt install build-essential cmake tar unzip zip curl libssl-dev libcurl4-openssl-dev libcap-dev\n```\n\nThe first few packages, up until the `curl` part, are required for `vcpkg` itself. Packages\nwith the prefix of `lib` are required, since they are required for the tool to function correctly.\nIf you are using Termux, exclude `libcap-dev`, since this library won't work on Android devices.\n\nFor Arch Linux users:\n```shell\n$ pacman -S base-devel cmake tar unzip zip curl openssl zlib\n```\n\nAfter installing these dependencies, run these two commands (simplified for VCPKG handling):\n```shell\n$ git clone https://github.com/BC100Dev/OsintgramCXX.git\n$ cd OsintgramCXX\n$ chmod +x prepare.sh\n$ ./prepare.sh\n```\n\nThis will download the sources of OsintgramCXX, along with preparing the environment for\nbuilding. After the execution of `./prepare.sh`, do the final blow with this command:\n\n```shell\n$ cmake --build Build\n```\n\n---\n\n### Building on non-Linux systems\nOkay, but you might be running Windows or macOS, so how else can you build it? Different\nmethods include:\n\n- Virtual Machines\n- Cloud Shell (via SSH)\n- Containers (e.g. Docker)\n- Dual-Booting (if you have a Windows PC)\n- WSL (Windows only)\n- Termux (Android only, still experimenting for a proper build)\n\n---\n\n## Modding Support\nYes, I may have promised that feature back in\n[Osintgram4j](https://github.com/BC100Dev/osintgram4j) itself, but I have decided to take\nthings up a notch and actually create a proper one. With this modding support, you can write\nyour own C/C++ shared library, have them linked with the\n[`commands.json`](Resources/commands.json) itself, and include your own commands, handlers\nand much more. As the development stage is still in the middle stages and other ideas coming\nin, the format for it will change, especially with the first version, considering that the\ncurrent version provides simple commands (`cmd`, `description`, `exec_symbol`). However,\nplease note that it is currently not possible to validate the parameters for the symbol of\nthe library entry (the method that gets invoked), so please keep in mind that you have to\ninclude a method that matches exactly by the parameters. If that isn't matched, OsintgramCXX\nwill crash. Following this sample, you can create a symbol for a command:\n\n```c++\n// if using C, skip the \u003cexport \"C\"\u003e part\nexport \"C\" int cmd_symbol(const char* cmd, int argc, char** argv, int envc, char** env_map) {}\n```\n\nThe symbol passes in the `cmd` value, aka. the command that you assigned the library and the\nsymbol for. The `argc` and `argv` are self-explanatory, since they resemble that known C/C++\n`int main(int argc, char** argv)` thing, except that the first parameter is not the command\nitself. Instead of having the shell environment map within one `envp` parameter, I decided\nto separate the count and the map into two parameters.\n\nAlong with that, you are able to create handlers for each call. For example, you can have\na handler that runs immediately, once OsintgramCXX completes loading the necessary things.\nThe same goes, when OsintgramCXX is stopping. Please keep in mind that no program can catch\nthe SIGKILL signal. The line required for these handlers would be for your codebase:\n\n```c++\nexport \"C\" void plugin_start() {}\n\nexport \"C\" void plugin_stop() {}\n```\n\nWant to snoop, what a command gets executed in the first place? Worry not, include a CMD\nstarting and finishing handle by making these methods:\n\n```c++\nexport \"C\" void cmd_handle_start(const char* cmdLine) {}\n\nexport \"C\" void cmd_handle_finish(const char* cmdLine, int rc, int id, const char* stream) {}\n```\n\nWith the `cmd_handle_finish`, you pass in the entire command line that the user has entered,\ngives in the `rc` (Return Code) value, `id` being the Plugin / Mod Identifier, and `stream`\nbeing the entire `stdout` \u0026 `stderr` stream.\n\nThe possibilities are endless. You can start creating one now.\n\nAlso keep in mind that I will not support any modifications / plugins that violates the\nInstagram ToS harder than this tool already does.\n\n---\n\nOh, and before I forget... womp womp, macOS users :skull:","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbc100dev%2Fosintgramcxx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbc100dev%2Fosintgramcxx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbc100dev%2Fosintgramcxx/lists"}