iT邦幫忙

zig相關文章
共有 60 則文章
鐵人賽 Security DAY 30

技術 Day30 - 地獄之門,直達內核:Hell's Gate 的直接系統呼叫術(下)

走在時代前沿的前言 最後一天了大家,讓我們快點開始,接續著昨天介紹的 Hell's Gate 中的結構體開始,來把 Hell's Gate 講完吧! 完整程式碼...

鐵人賽 Software Development DAY 30

技術 完賽,再談談 Zig

總算是到最後一天了。在先前的內容中,我們從安裝 Zig 開始,一步步介紹 Zig 的各種基本語法和特性,我也是一邊寫文章、一邊寫程式一同學習 Zig。 Zig...

鐵人賽 Security DAY 26

技術 Day26 - 幽影綴化術,暗黑鍛造工藝:自製簡易 Binary Packer(上)

走在時代前沿的前言 哈囉大家,雙十節快樂!這兩天要來自製一個 Binary Packer!如果不知道 Packer 是什麼或是想跟著一起實作的話,就讓我們繼續看...

鐵人賽 Security DAY 29

技術 Day29 - 地獄之門,直達內核:Hell's Gate 的直接系統呼叫術(上)

走在時代前沿的前言 嗨嗨大家好,倒數第二天!昨天跟大家介紹了 Heaven's Gate 的技術,今天要來介紹一個名稱跟它很像,但是八竿子打不著的 Hell's...

鐵人賽 Security DAY 1

技術 Day01 - 二代鐵牛!新一代的傳奇與神秘的邪惡綠鬣蜥?!

開始之前,歡迎大家按一下 Black-Hat-Zig 星星,本系列內容多出自於該專案。專案連結:https://black-hat-zig.cx330.tw...

鐵人賽 Security DAY 23

技術 Day23 - 影子寄生術,操弄世界的魁儡:Process Injection 之 Mapping Injection

走在時代前沿的前言 哈囉大家! 昨天和大家介紹了遠端進程的線程劫持,今天要來介紹 Mapping injection,中文我也不太確定是什麼應該是什麼映射注入之...

鐵人賽 Software Development DAY 1

技術 Zig:延續了 C 使用者最喜歡的低級操作,再加上 Rust 的現代特性

Zig 是一個通用功能程式語言及工具鏈(Toolchain),主打強健、最佳化和重複利用。 Zig is a general-purpose program...

鐵人賽 Security DAY 28

技術 Day 28 - 天門開啟,越界而行:Heaven’s Gate 的 32/64 位元穿梭術

走在時代前沿的前言 Ayo 是我 CX330!最後三天啦!天啊真的是一路寫來覺得挺辛苦的,很敬佩每一位完賽的前輩們,用自己的肝來換大家的學習進步,太感謝大家了。...

鐵人賽 Security DAY 9

技術 Day09 - 神出鬼沒的幻影綠鬣蜥:Payload 的加密與混淆(上)

走在時代前沿的前言 早安午安晚安,我是 CX330。我們昨天看了 PE 文件的格式,把整個 PE 文件的架構都介紹了一遍。今明兩天呢,我們要來看一下前幾天介紹過...

鐵人賽 Security DAY 27

技術 Day27 - 幽影綴化術,暗黑鍛造工藝:自製簡易 Binary Packer(下)

走在時代前沿的前言 Ayo 各位我回來了。昨天我們已經看了這個 Packer 是如何偵測執行檔的架構跟格式,也看了它的加密邏輯,今天我們要繼續把這個 Packe...

鐵人賽 Software Development DAY 2

技術 安裝 Zig

這篇來介紹一下如何在電腦上安裝 Zig 及相關工具,讓你可以執行 Zig。 注意,因爲 Zig 還很年輕,也還沒進入 Major 版號,各個版本之間的差異可能...

鐵人賽 Software Development DAY 3

技術 執行與測試 Zig

目前我們已經安裝好 Zig 了,總算是可以來實際寫寫 Zig 並試著運行了。 建立專案 首先建立一個資料夾 zig-hello: mkdir zig-hell...

鐵人賽 Software Development DAY 29

技術 Zig:依賴套件管理

Zig 使用一個 build.zig.zon 來管理專案,其中也包含使用第三方依賴套件,這個有點類似 JavaScript 的 package.json。 Z...

鐵人賽 Software Development DAY 5

技術 Zig:賦值(Assignment)與運算子(Operator)

賦值(Assignment)與運算子(Operator)是各種程式語言中最基本的操作。 賦值 在 Zig 中只有兩種賦值關鍵字: const:不可變的常數...

鐵人賽 Software Development DAY 6

技術 Zig:型別(Types)

型別系統是程式語言的一大重點,我認爲它也影響了該語言適用的領域和應用。 正如第一篇說述,Zig 是靜態、強型別。這意味著 Zig 在編譯期進行型別檢查(靜態型...

鐵人賽 Software Development DAY 4

技術 Zig:函式(Functions)

Zig 身爲程序式編程(Procedural programming)語言,函式(Function)自然是一大重點(雖然這句話好像在 OOP 和 FP 上也適用...

鐵人賽 Software Development DAY 16

技術 Zig:for 迴圈

for 是一種基於可迭代(Iterate)陣列的迴圈。 Zig 的 for 是比較接近如 Python 這種直接針對可迭代的迴圈,而不是傳統 C 的那種針對數...

鐵人賽 Software Development DAY 28

技術 Zig:建置 build.zig

Zig 使用一個 build.zig 來配置建置,有點類似 Makefile。 build.zig 使用 zig init 建立的預設專案中會有一個 buil...

鐵人賽 Security DAY 19

技術 Day19 - 幽影巡查,黑暗中的死亡筆記本:Windows 進程枚舉術(下)

走在時代前沿的前言 Ayo 大家,先跟大家分享一個好消息,就是今天睡覺睡好久好開心(? 我們昨天已經和大家介紹過了如何使用 EnumProcesses 來枚舉進...

鐵人賽 Software Development DAY 7

技術 Zig:結構(Struct)

struct 可以用來組織個複雜的自訂型別。 就和大多數的程式語言一樣,Zig 也有 struct,可以用來組合其它型別成爲一個新的型別。和 C 不同、但是和...

鐵人賽 Software Development DAY 24

技術 Zig:編譯期 Comptime

comptime 是 Zig 的一大特色,使用它可以將許多運算帶到編譯期,從而提高運行時的效率。這個功能類似 C++11 的 constexpr 和 C++20...

鐵人賽 Software Development DAY 14

技術 Zig:模式配對 switch

switch 通常用來匹配一個變數的多種數值。 如果你和我一樣,原本是寫 C,後來接觸了 Rust,那你一定對 Rust 的 match 模式配對愛不釋手,希...

鐵人賽 Software Development DAY 18

技術 Zig:進階型別

到目前爲止已經把基本的型別都介紹完了,這篇來介紹一下進階的型別用法。 packed packed 在 C 中不是標準的關鍵字,但是大多數的編譯器都有支援相關的...

鐵人賽 Software Development DAY 17

技術 Zig:錯誤處理 Error

Zig 使用 error 建立錯誤集合型別。 Zig 不使用多少現代語言常見的 try-catch、exception 機制處理錯誤,而是選擇和 Rust 類...

鐵人賽 Software Development DAY 21

技術 Zig:分配器(Allocator)

Allocator 是 Zig 標準庫提供的功能,用來分配記憶體,尤其是涉及動態分配的情況。 Page 最基本的是 Page Allocator,使用 std...

鐵人賽 Software Development DAY 20

技術 Zig:defer

defer 對於 C 和 Rust 的使用者是個比較陌生的語法,它是用來在離開目前的作用域(Scope)時自動執行表達式(expression)。 它通常用來...

鐵人賽 Software Development DAY 10

技術 Zig:陣列(Array)和切片(Slices)

陣列 Array 是每個語言都有的基本功能,而切片 Slices 則是現代語言常見的陣列參照。 陣列 基本 陣列在編譯期確定長度、單一型別。宣告時可以省略長度...

鐵人賽 Security DAY 18

技術 Day18 - 幽影巡查,黑暗中的死亡筆記本:Windows 進程枚舉術(上)

走在時代前沿的前言 Yo 歡迎回來,我是 CX330。昨天介紹了 Shellcode injection 的技術,其中我們的第一個步驟就是要枚舉所有的進程。而我...

鐵人賽 Software Development DAY 9

技術 Zig:聯合(Union)

union 用來定義多型別單一值。 如有某一個數值在概念上可以用多種型別表達,但同時只會是一種型別的話,就可以用 union 處理。 基本 const std...

鐵人賽 Software Development DAY 19

技術 Zig:向量(Vector)

Vector 可以用來儲存一組相同型別的資料,其長度和型別需在宣告時指定且不能變更,支援 SIMD(Single instruction, multiple d...