iT邦幫忙

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

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

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

鐵人賽 Software Development DAY 30

技術 完賽,再談談 Zig

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

鐵人賽 Security DAY 30

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

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

鐵人賽 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 9

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

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

鐵人賽 Software Development DAY 29

技術 Zig:依賴套件管理

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

鐵人賽 Software Development DAY 2

技術 安裝 Zig

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

鐵人賽 Software Development DAY 3

技術 執行與測試 Zig

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

鐵人賽 Software Development DAY 5

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

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

鐵人賽 Security DAY 28

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

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

鐵人賽 Software Development DAY 6

技術 Zig:型別(Types)

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

鐵人賽 Security DAY 29

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

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

鐵人賽 Software Development DAY 16

技術 Zig:for 迴圈

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

鐵人賽 Software Development DAY 4

技術 Zig:函式(Functions)

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

鐵人賽 Software Development DAY 28

技術 Zig:建置 build.zig

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

鐵人賽 Software Development DAY 14

技術 Zig:模式配對 switch

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

鐵人賽 Software Development DAY 7

技術 Zig:結構(Struct)

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

鐵人賽 Software Development DAY 18

技術 Zig:進階型別

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

鐵人賽 Software Development DAY 21

技術 Zig:分配器(Allocator)

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

鐵人賽 Security DAY 19

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

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

鐵人賽 Software Development DAY 20

技術 Zig:defer

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

鐵人賽 Software Development DAY 19

技術 Zig:向量(Vector)

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

鐵人賽 Software Development DAY 17

技術 Zig:錯誤處理 Error

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

鐵人賽 Software Development DAY 24

技術 Zig:編譯期 Comptime

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

鐵人賽 Software Development DAY 26

技術 Zig:迭代器(Iterator)

對於常寫 Python 的人應該很熟悉迭代器,在處理一些資料時比單純的陣列好用。Zig 通常使用擁有 next() 方法的 struct 來代表迭代器。 基礎...

鐵人賽 Software Development DAY 10

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

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

鐵人賽 Security DAY 18

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

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

鐵人賽 Software Development DAY 8

技術 Zig:列舉(Enum)

列舉(Enum)也是各個語言中常見且好用的自訂型別。 和多數語言一樣,enum 可以用來創造一些固定的「選項」,對程式碼可讀性和強健性來說都很好用。比較特別的...