From 5d06fe5f84b8ce4b43f35362e76a19a670584762 Mon Sep 17 00:00:00 2001 From: ThisIsDara <1380katana@gmail.com> Date: Mon, 4 May 2026 07:52:54 +0330 Subject: [PATCH] Add workflow, icon, and cleanup --- .github/workflows/build.yml | 54 ++++++++++++++++++++++++++++++++++++ .gitignore | 15 +++++++++- ca/ca.crt | 19 +++++++++++++ ca/ca.key | 27 ++++++++++++++++++ ivk.ico | Bin 0 -> 13497 bytes 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build.yml create mode 100644 ca/ca.crt create mode 100644 ca/ca.key create mode 100644 ivk.ico diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..bdbc9bf --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,54 @@ +name: Build and Release + +on: + push: + tags: + - 'v*' + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + + - name: Build + run: go build -ldflags "-s -w" -o mhr-cfw-go.exe ./cmd/mhr-cfw + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: mhr-cfw-go + path: mhr-cfw-go.exe + + release: + needs: build + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/') + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: mhr-cfw-go + path: . + + - name: Extract version + id: version + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + + - name: Release + uses: softprops/action-gh-release@v1 + with: + body_path: CHANGELOG.md + files: mhr-cfw-go.exe + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 517d397..1ad5917 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,17 @@ *.out go.work .DS_Store -Thumbs.db \ No newline at end of file +Thumbs.db +*.o +*.coff +v1.0/ +build*.ps1 +build*.bat +icon.c +stub.c +inject_icon.c +inject_icon.exe +main.a +build_hook.go +*.md +!LICENSE \ No newline at end of file diff --git a/ca/ca.crt b/ca/ca.crt new file mode 100644 index 0000000..e8376ea --- /dev/null +++ b/ca/ca.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDFDCCAfygAwIBAgIQF8rhWoUE4M9pEaBVJ5N/mDANBgkqhkiG9w0BAQsFADAk +MRAwDgYDVQQKEwdtaHItY2Z3MRAwDgYDVQQDEwdtaHItY2Z3MB4XDTI2MDUwNDAy +NTI0M1oXDTM2MDUwNDAyNTI0M1owJDEQMA4GA1UEChMHbWhyLWNmdzEQMA4GA1UE +AxMHbWhyLWNmdzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN7GVGND +He2ABsCA5oFoNAjF3f9q84fGU26U6eR+PYSPbJ5CbGCpoZ3PYbxyUhU80T+1wJat +upEKpvIL8Yw1ZJR9eEcRVjPWO1BKz1oG1TI0ONSiezSp8uYPMi1YDsouHurRLSQt +uS91UuX5Dt9U7/2A/3+b0imNgKa8k9+mdqYoEqc36B/lR4Yq735Z0Zlu6xxSYU7x +xmCScu5WPzJ3rbLca/m1y77XuPqrwy+oOYAC00NARlOkzEJWGVmzx15DJzjHvF77 +qt4N3dPkN05JzyPGXJ7dL7ELSMddiWI/Jvt9CIswYqCdUdCqhnRc4fU0FfdQo1kC +13Vl4NzmaYDTYy8CAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFEmKnnTSQunD6HQPjDR8q8/uQQRbMA0GCSqGSIb3DQEB +CwUAA4IBAQBIdU+9lMThYOmud55N7IsBnMzafJad0yvsHOtZe4ZwOAtHKNG5z6MC +PMaAxv41LJFIjr7A9a8U1sI3HTGYzf2bnUjZTegKBZzQEBXSplyZNwD3nNa+6mj6 +w/Up3WjtWHGduYHYRJuP3U72PLUk03a7se0GXe985wi8vK3I+sJ4yiHeuEVQaQtV +8nRev3csuq+GlkREwXTEg6NSUPX5tsI4x7Objt93QvlLUl2E6pXS+rMtWtA9UV4f +9BocX23WU292T4i7hCaRU05PJBj2Hqix0ZGBmu8+TsCnHsoytaLWBALWBJ2WaFy0 +NHfK2uCQHk76f1CCcjrQQ6gvD2E6DKo+ +-----END CERTIFICATE----- diff --git a/ca/ca.key b/ca/ca.key new file mode 100644 index 0000000..c3e39a8 --- /dev/null +++ b/ca/ca.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA3sZUY0Md7YAGwIDmgWg0CMXd/2rzh8ZTbpTp5H49hI9snkJs +YKmhnc9hvHJSFTzRP7XAlq26kQqm8gvxjDVklH14RxFWM9Y7UErPWgbVMjQ41KJ7 +NKny5g8yLVgOyi4e6tEtJC25L3VS5fkO31Tv/YD/f5vSKY2ApryT36Z2pigSpzfo +H+VHhirvflnRmW7rHFJhTvHGYJJy7lY/Mnetstxr+bXLvte4+qvDL6g5gALTQ0BG +U6TMQlYZWbPHXkMnOMe8Xvuq3g3d0+Q3TknPI8Zcnt0vsQtIx12JYj8m+30IizBi +oJ1R0KqGdFzh9TQV91CjWQLXdWXg3OZpgNNjLwIDAQABAoIBABVsuonvVwNT2D0O +8zGH3X/oflYFqap/ADV23IWtPxUEHCdI7mu0ygZyKY1Plfr/5dnm4hY7sAvUm+3/ +CGR6cBQN0Gb5UQfcNx5yNhM2QVkPh6r/fgeNvqlcgHAMSM6DSqrnohvuyna40Feu +BmhOdA7hJ0aqVuHIf5J0OWkoH79mljqsBhxg+JPZxzc4Oj+Yxd0LyKYob+MSfpTM +qOjMV+lPPm7omUg3bOT6HuxghNXdQNl7+jb7Knmf9hY2PFHLAn8HX+6afqwTZYNJ +AECOaRvPPfOcusNZ77QaFQBQ4t/s5cPokW0FhE5R+LgGEDYjYaJF4wX7u+U54KpF +scyP8F0CgYEA+eQRAzWlX9zIbrsnhFMqjChcfnSLxNYVUTi+i1T4Kwz4Epov3M3h +sglssrHIi618ukrNsBFsxi1+oVE4tnPGxHklUx8sYbhBFSOgRezrc21Qdw1tkLHg +CKjbmTu5g+hXjg4gUI4+n1VqFIWuJJ2bUv/yyuU27Vh7ZXg/J1xRpnMCgYEA5DiO +wMblcldG/UCroAZGULsgAt/8jMERoG9WF2ldY/8dG5iFRNwYkSvsWkdZJePSqi+J +nz5Pmn8Tvf67sVLREsCkO9PCQ3/DVkOYUNIE34E9DMafePntldv/7vvHDlEylUh4 +kgfoHD8/6lqp/dAb/V3jkhGmRI3oO3FkcqYVpVUCgYEArmysF1JtwZEJcok+VxX5 +/+T4Uugk21sXfB8gmX7QzrP5wHpRaE1o+W2sqrp/okeRZTNriTdQdrAw0IcyD+CW +YHOzQubigr8q5od8ivKJkoM+BCuiS7ptB35d8gKHRnR6ENT5Z2EyguMK7ZI18Kb2 +USQIo+kEwvzc/QHHC0FcWNMCgYEAk4ypZqNxBqq8v9GG5HAKF/nTaWhs/Id6oPI6 +g+pgMd1ncUb7qpht3bW7GmcUkPWpZtRTMrxzdNyB5A2ERdHYUDpyNCflagR5QxVy +rZYLBoGk+dSUl/9mBsR0xIrNmEkQ3gk7wpYQD+sopJi3XNymq/l+vxpgF+RzZ7MZ +ETKlvf0CgYEAvOiMaBC12aCKH/mASgVVbs8hq9rxqOsyAABp6xSiKnVcuUKHdbZ3 +4hCwa4qfm1pzK7kMDChsCP7Az3i29BK8oTWJDwDb+paog76ozF8v2sYxVufV1WKX +YQnrAtFnx+RNHWAW6bE/AZk0LxPr5aUor2NwiAFGlSFSMVr3gc7o2IU= +-----END RSA PRIVATE KEY----- diff --git a/ivk.ico b/ivk.ico new file mode 100644 index 0000000000000000000000000000000000000000..b0413d8991b8530adbc2ba44fd79354d5059c04e GIT binary patch literal 13497 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 literal 0 HcmV?d00001