Skip to content

Instantly share code, notes, and snippets.

View appleboy's full-sized avatar
🔥
On Fire

Bo-Yi Wu appleboy

🔥
On Fire
View GitHub Profile

使用Go語言進行反編譯,使程式碼難以理解和分析的過程稱為混淆(obfuscation)。混淆是一種安全技術,用於使編譯後的程式碼變得複雜、難以閱讀和分析,以防止逆向工程和破解。以下是如何使用Go語言進行混淆的步驟,以及一些工具和方法來證明程式碼的混淆效果。

混淆前後的比較

混淆前的程式碼和編譯的二進制文件較為直觀和容易理解。混淆後,變數名、函數名等會被替換為無意義的名稱,使得程式碼難以閱讀和逆向工程。

證明混淆效果

反編譯前的二進制文件:

程式碼混淆技術是透過改變程式碼的結構和語意,使其變得難以理解和分析,但在功能上不受影響的技術。這些技術在保護知識產權、防止逆向工程和提高安全性方面非常有用。下面介紹一些常見的混淆技術,並提供 Go 語言的示例程式碼。

常見的程式碼混淆技術

  • 變量名混淆:將變量名改為無意義的名稱。
  • 控制流平坦化:改變程式碼的控制流,使其難以追蹤。
  • 死碼插入:插入無用的程式碼,使其難以理解。
  • 函數內聯化:將小函數的程式碼直接放入呼叫它的地方,減少函數呼叫。
  • 字符串加密:將字符串加密,運行時再解密。
  • 無意義的注釋:插入大量無意義的注釋來混淆。
@appleboy
appleboy / backend.md
Last active October 17, 2023 14:55
[徵才] AI 前沿技術新創團隊後端工程師 (月薪 8 萬起)

團隊簡介

  • 我們是一個專注於 Technology intelligence 的早期 AI SaaS 新創公司,運用先進的 AI 大型語言模型(LLM)技術,專為企業、研究人員和政策制定者提供全球研究數據庫中最新的技術趨勢和關鍵技術搜尋。我們的產品解決了多個痛點,包括手動搜索和識別寶貴技術的耗時過程,缺乏系統性監控新興關鍵技術趨勢的方法,以及在特定時間點驗證技術成熟度的挑戰。
  • 團隊背景: 創始團隊來自全球頂級的 Tier 1 公司,具有豐富的產業經驗和專業知識。我們決定跳出舒適圈,因為我們看到了在解決當前市場痛點方面的全球巨大潛力。
  • 我們採用敏捷開發模式,以使用者故事(user story)作為開發依據,這樣可以更快速地迭代和改進我們的產品。我們的核心價值觀是以數據為基礎,驅動創新和決策。這不僅適用於我們的產品,也適用於我們的開發過程。我們相信,數據能夠帶來更精確、更具影響力的解決方案。

加入我們的團隊,您將有機會參與這一切,並在這個快速發展的市場中扮演關鍵角色。我們正在尋找像您一樣充滿熱情和優秀的人才,一起來改變世界。

能力需求

@appleboy
appleboy / lab.md
Last active May 11, 2023 02:23
開源 Gitea 推出 Actions 整合 CI/CD 流程

Gitea 1.19.0 版本新增了 Gitea Actions 的功能,這是內建於 Gitea 的 CI 系統,與 GitHub Actions 相似且相容。帶您如何用開源專案 Gitea 導入 CI/CD 流程。

課程目標

  • 認識開源 Git Hosting 平台 Gitea
  • 了解 Gitea Actions 的基本概念

課程綱要

  • 安裝 Gitea + Action Runner
@appleboy
appleboy / setting.json
Created February 20, 2022 00:27
vscode config
{
"workbench.iconTheme": "vscode-icons",
"editor.fontFamily": "Fira Code",
"editor.fontLigatures": true,
"workbench.colorTheme": "1337",
"window.nativeTabs": true,
"editor.fontWeight": "400", // Bold
"go.useLanguageServer": true,
"go.docsTool": "gogetdoc",
"go.autocompleteUnimportedPackages": true,

Keybase proof

I hereby claim:

  • I am appleboy on github.
  • I am appleboy (https://keybase.io/appleboy) on keybase.
  • I have a public key ASAWcKvwqTldOPPWnlob3Hqeu8pMfz4wwhvDM2Rn0B0s4Ao

To claim this, I am signing this object:

@appleboy
appleboy / golang-web-benchmark.txt
Last active March 9, 2022 10:38
Golang web framework benchmark
## Gin v1.6.3
#GithubAPI Routes: 203
Ace: 48688 Bytes
Aero: 318568 Bytes
Bear: 84248 Bytes
Beego: 150936 Bytes
Bone: 100976 Bytes
Chi: 95112 Bytes
Denco: 36736 Bytes
@appleboy
appleboy / golang.md
Last active August 9, 2023 14:53
Go 語言基礎課程

Go 語言開發實戰從入門到進階

課程說明

Go 語言 (又稱 Golang) 是 Google 推出新一代的強大語言,2019 年 3 月 Google 公佈了去年底統計的問卷結果,發現 65% 用 Go 來寫網站,39% 用來開發系統程式,41% 用來做 DevOps (多重選擇),可想而知 Go 語言可以拿來從底層寫到上層。高效能的 Goroutine (併發) 表現優於 Parallelism (並行),語法上簡潔又簡單,這也就是為什麼我們要來嘗試 Go 語言。

Go 語言入門

時間 課程 時數
@appleboy
appleboy / jwt.go
Created June 1, 2018 01:56
jwt decode example
package main
import (
"log"
"gopkg.in/dgrijalva/jwt-go.v3"
)
func main() {
t := "eyJ0eXAiOiJKV1QiLCJraWQiOiIwNDYzOGI1ZS1iZDI5LTQzYzAtOGE5ZS02OGZjYmE2NWJiNDEiLCJhbGciOiJIUzI1NiIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsImNsaWVudCI6IjIzMzE4NzM3MTY3NS1xN25vYjZldWRsazliMmM4ZGlxMm4wZ2IxaDI5cWsxai5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInNpZ25lciI6ImFybjphd3M6ZWxhc3RpY2xvYWRiYWxhbmNpbmc6dXMtZWFzdC0xOjkwMzc3OTQ0ODQyNjpsb2FkYmFsYW5jZXIvYXBwL2RlZmF1bHQvYTQ1MDkxNGRjZTM1ZjA1OCIsImV4cCI6MTUyNzgxNzI1MX0.eyJzdWIiOiIxMTA5Nzc1OTIyMTU4NzcwMzU5ODciLCJuYW1lIjoiQm8tWWkgV3UiLCJnaXZlbl9uYW1lIjoiQm8tWWkiLCJmYW1pbHlfbmFtZSI6Ild1IiwicHJvZmlsZSI6Imh0dHBzOi8vcGx1cy5nb29nbGUuY29tLzExMDk3NzU5MjIxNTg3NzAzNTk4NyIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLW42SW81d0Q5SWFZL0FBQUFBQUFBQUFJL0FBQUFBQUFBUjh3Ly1OYmN1RVM5cXJrL3Bob3RvLmpwZyIsImdlbmRlciI6Im1hbGUifQ.8Zpgf6pEt3RPRdT_l-3PyTBpDwNRu6E6NyIXZMRXQOc"
@appleboy
appleboy / car_test.go
Created May 13, 2018 07:17
golang testing
package car
import (
"testing"
"github.com/stretchr/testify/assert"
)
// Simple testing what different between Fatal and Error
func TestNew(t *testing.T) {