{"id":16134115,"url":"https://github.com/developpeurpascal/exebulksigning","last_synced_at":"2025-04-06T15:47:20.225Z","repository":{"id":114054472,"uuid":"506251136","full_name":"DeveloppeurPascal/ExeBulkSigning","owner":"DeveloppeurPascal","description":"Simple tool to sign all EXE or MSIX files in a folder","archived":false,"fork":false,"pushed_at":"2025-02-05T18:55:00.000Z","size":576,"stargazers_count":24,"open_issues_count":37,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-12T21:46:58.919Z","etag":null,"topics":["codesigning","delphi","delphi-app","developer-tools","firemonkey","firemonkey-applications","signtool-automation"],"latest_commit_sha":null,"homepage":"https://exebulksigning.olfsoftware.fr/","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeveloppeurPascal.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/20230104-DeveloppeurPascal.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"DeveloppeurPascal","liberapay":"PatrickPremartin","patreon":"patrickpremartin","custom":"https://www.paypal.com/paypalme/patrickpremartin"}},"created_at":"2022-06-22T13:05:32.000Z","updated_at":"2025-02-05T18:55:05.000Z","dependencies_parsed_at":"2024-02-01T11:37:22.420Z","dependency_job_id":"3bb21ff7-923a-4766-b008-8d9a4f95b903","html_url":"https://github.com/DeveloppeurPascal/ExeBulkSigning","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloppeurPascal%2FExeBulkSigning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloppeurPascal%2FExeBulkSigning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloppeurPascal%2FExeBulkSigning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloppeurPascal%2FExeBulkSigning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeveloppeurPascal","download_url":"https://codeload.github.com/DeveloppeurPascal/ExeBulkSigning/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247508935,"owners_count":20950233,"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":["codesigning","delphi","delphi-app","developer-tools","firemonkey","firemonkey-applications","signtool-automation"],"created_at":"2024-10-09T22:47:27.835Z","updated_at":"2025-04-06T15:47:20.206Z","avatar_url":"https://github.com/DeveloppeurPascal.png","language":"Pascal","funding_links":["https://github.com/sponsors/DeveloppeurPascal","https://liberapay.com/PatrickPremartin","https://patreon.com/patrickpremartin","https://www.paypal.com/paypalme/patrickpremartin","https://www.patreon.com/patrickpremartin"],"categories":[],"sub_categories":[],"readme":"# Exe Bulk Signing\n\n[Cette page en français.](LISEZMOI.md)\n\nSimple tool to sign all EXE and MSIX files in a folder.\n\nThis program is a Delphi FireMonkey project but only useful in Windows environment because it uses a Windows SDK utility.\n\nThis code repository contains a project developed in Object Pascal language under Delphi. You don't know what Delphi is and where to download it ? You'll learn more [on this web site](https://delphi-resources.developpeur-pascal.fr/).\n\n## Use case\n\nYou can use it to sign your programs before distributing them or to resign them if you signed with an expired certificate without time stamping the signature.\n\n## What you have to do before using the program\n\nTo use this program you need the Microsoft Windows SDK on your Windows 10 or 11 computer. Locate signtool.exe on your computer to check if it's installed.\n\nYou need a code signing certificate (PFX file and its password or a token). If you don't have any, buy one from an authority like [Sectigo](https://www.sectigo.com/ssl-certificates-tls/code-signing), [Digicert](https://www.digicert.com/software-trust-manager), [Certum](https://www.certum.eu/en/code-signing-certificates/) or other authority recognized by Microsoft for Authenticode and Windows Smart Screen system.\n\nYou can create a personnal certificate but you need to deploy private key on computers where you will use your signed programs to avoid Windows alerts. For public publishing, you need an official CSC. In the past I used tu buy my CSC on Tucows authors website and after KSoftware. Now I buy them to [Certum](https://www.certum.eu/en/code-signing-certificates/) (the cheapest on the market as far as I know on 2024-02-01, but with a token that doesn't currently work on Windows ARM).\n\nProtect your certificate and its password : your reputation is on the line. The security of your users too !\n\nRead more about signtool.exe on [Microsoft documentation](https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/signtool).\n\nTo find out more about replacing certificate files with physical tokens, see [this explanation](https://www.finalbuilder.com/resources/blogs/code-signing-with-usb-tokens).\n\n## How to use this program ?\n\nLaunch the program.\nFill the fields.\nChoose the folder from which exe/msix files you want to sign.\nStart signing process.\n\nProgram title and URL are displayed when Smart Screen tells users a file have been downloaded. You can put something in it or nothing. It does no real difference.\n\n## Warnings\n\nDon't (re)sign/distribute programs and installers you are not the developer.\n\nCheck viruses before signing programs. Don't sign an exe / MSIX file if it contains viruses or other malware. You will be responsible of it !\n\n## SignTool command used\n\nJust to say, the program does a simple loop on files in the choosen folder and for each selected file it executes this command :\n\n\"path to signtool.exe\" sign /v /debug /f \"PFXFilePath\" /p PFXPassWord /tr \"TimestampServerURLIfSpecified (recommanded)\" /td SHA256 /fd SHA256 /d \"ProgramTitle (if specified)\" /du \"YourURL (if specified)\" \"path to EXE or MSIX file to sign\"\n\n\"path to signtool.exe\" sign /v /debug /n \"UID\" /tr \"TimestampServerURLIfSpecified (recommanded)\" /td SHA256 /fd SHA256 /d \"ProgramTitle (if specified)\" /du \"YourURL (if specified)\" \"path to EXE or MSIX file to sign\"\n\n\"path to signtool.exe\" sign /v /debug /n \"Certificate name\" /tr \"TimestampServerURLIfSpecified (recommanded)\" /td SHA256 /fd SHA256 /d \"ProgramTitle (if specified)\" /du \"YourURL (if specified)\" \"path to EXE or MSIX file to sign\"\n\n## Warnings\n\nSigning EXE files is never a problem if the certificate is good.\n\nSigning MSIX files is available only if MSIX is not signed or if it has been signed with the same certificate you are using to resign it.\n\nIn case of error, nothing is done, the file doesn't change.\nIn case of it works, the date/time of the file change. You can display signature informations from file property dialog box.\n\n## Talks and conferences\n\n### Twitch\n\nFollow my development streams of software, video games, mobile applications and websites on [my Twitch channel](https://www.twitch.tv/patrickpremartin) or as replays on [Serial Streameur](https://serialstreameur.fr) mostly in French.\n\n## Using this software\n\nThis software is available in a directly installable or executable production version. It is distributed as shareware.\n\nYou can download and redistribute it free of charge, provided you do not modify its content (installer, program, additional files, etc.).\n\n[Download program or installer](https://olfsoftware.lemonsqueezy.com/checkout/buy/84b7ba9b-5c2f-48bb-b53f-c59faed560cf)\n\nIt is also available [from GetIt](https://getitnow.embarcadero.com/exe-bulk-signing/) directly in the Delphi, C++Builder and RAD Studio development environment.\n\nIf you use this software regularly and are satisfied with it, you are invited to purchase an end-user license. Purchasing a license will give you access to software updates, as well as enabling optional features.\n\n[Buy a license](https://store.olfsoftware.fr/en/developer-software-c-3/windows-development-c-8/exe-bulk-signing-p-4)\n\nYou can also [visit the software website](https://exebulksigning.olfsoftware.fr/) to find out more about how it works, access videos and articles, find out about the different versions available and their features, contact user support...\n\n## Source code installation\n\nTo download this code repository, we recommend using \"git\", but you can also download a ZIP file directly from [its GitHub repository](https://github.com/DeveloppeurPascal/ExeBulkSigning).\n\nThis project uses dependencies in the form of sub-modules. They will be absent from the ZIP file. You'll have to download them by hand.\n\n* [DeveloppeurPascal/AboutDialog-Delphi-Component](https://github.com/DeveloppeurPascal/AboutDialog-Delphi-Component) must be installed in the ./lib-externes/AboutDialog-Delphi-Component subfolder.\n* [DeveloppeurPascal/Delphi-FMXExtend-Library](https://github.com/DeveloppeurPascal/Delphi-FMXExtend-Library) must be installed in the ./lib-externes/Delphi-FMXExtend-Library subfolder.\n* [DeveloppeurPascal/librairies](https://github.com/DeveloppeurPascal/librairies) must be installed in the ./lib-externes/librairies subfolder.\n* [DeveloppeurPascal/Socket-Messaging-Library](https://github.com/DeveloppeurPascal/Socket-Messaging-Library) must be installed in the ./lib-externes/Socket-Messaging-Library subfolder.\n* [TurboPack/DOSCommand](https://github.com/TurboPack/DOSCommand) must be installed in the ./lib-externes/DOSCommand subfolder.\n\n## License to use this code repository and its contents\n\nThis source code is distributed under the [AGPL 3.0 or later license](https://choosealicense.com/licenses/agpl-3.0/).\n\nYou are generally free to use the contents of this code repository anywhere, provided that:\n* you mention it in your projects\n* distribute the modifications made to the files supplied in this project under the AGPL license (leaving the original copyright notices (author, link to this repository, license) which must be supplemented by your own)\n* to distribute the source code of your creations under the AGPL license.\n\nIf this license doesn't suit your needs, you can purchase the right to use this project under the [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/) or a dedicated commercial license ([contact the author](https://developpeur-pascal.fr/nous-contacter.php) to explain your needs).\n\nThese source codes are provided as is, without warranty of any kind.\n\nCertain elements included in this repository may be subject to third-party usage rights (images, sounds, etc.). They are not reusable in your projects unless otherwise stated.\n\n## How to ask a new feature, report a bug or a security issue ?\n\nIf you want an answer from the project owner the best way to ask for a new feature or report a bug is to go to [the GitHub repository](https://github.com/DeveloppeurPascal/ExeBulkSigning) and [open a new issue](https://github.com/DeveloppeurPascal/ExeBulkSigning/issues).\n\nIf you found a security issue please don't report it publicly before a patch is available. Explain the case by [sending a private message to the author](https://developpeur-pascal.fr/nous-contacter.php).\n\nYou also can fork the repository and contribute by submitting pull requests if you want to help. Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\n## Support the project and its author\n\nIf you think this project is useful and want to support it, please make a donation to [its author](https://github.com/DeveloppeurPascal). It will help to maintain the code and binaries.\n\nYou can use one of those services :\n\n* [GitHub Sponsors](https://github.com/sponsors/DeveloppeurPascal)\n* [Liberapay](https://liberapay.com/PatrickPremartin)\n* [Patreon](https://www.patreon.com/patrickpremartin)\n* [Paypal](https://www.paypal.com/paypalme/patrickpremartin)\n\nor if you speack french you can [subscribe to Zone Abo](https://zone-abo.fr/nos-abonnements.php) on a monthly or yearly basis and get a lot of resources as videos and articles.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloppeurpascal%2Fexebulksigning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloppeurpascal%2Fexebulksigning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloppeurpascal%2Fexebulksigning/lists"}