VMProtect 弱保護脫殼小記

最近開始玩某個遊戲的私服,世界各國代理商全倒光之後就有一群人在臺港澳中開了私服,甚至就直接用那個遊戲的名字直接營運.... XD

遊戲主程式有加殼,因為有改過所以沒辦法直接從 section name 或是 exeinfoPE 看出來,後來是 ProtectionId 說他是 VMProtect 2.06(我沒辦法驗證這件事情,基本上他沒開任何 VMProtect 的保護功能)

一開始不知道怎麼脫,x64dbg 配 Win10 的環境也不太好作業,所以就在遊戲跑起來的狀況下 dump memory 然後修 IAT,結果 Win10 因為相容性問題,所以引入了 AcLayers.dll / apphelp.dll ,並且在 PE loader 內去 hook EAT,結果就會讓 Scylla 壞掉

screenshot screenshot

脫殼請在該應用程式支援的最低作業系統版本下進行 XD …

Continue reading »

CTF介紹

一般人聽到 CTF 可能會有的反應大概就幾種:「那是什麼?」、「駭客的遊戲?聽起來好可怕」、「蛤?」,加上一個人打 CTF 太孤單,所以來寫這篇文章,向大家介紹 CTF!

所以 CTF 到底是殺小?

Capture The Flag,駭客的搶旗遊戲,Flag 通常就是一串文字,或是要達成指定的目標。

至於這個 Flag 要怎麼拿呢?基本上主辦方會架設一些有漏洞的服務系統,或者是含有漏洞的程式,又或者是把資訊隱藏在檔案裡面,挑戰者要想辦法用駭客攻擊的手法入侵系統,或者想辦法找出或解密藏在檔案或程式內隱藏的 Flag

CTF 的賽制

基本上可以分成四種:

  • Jeopardy
  • Attack & Defense
  • King of Hill
  • CGC

Jeopardy

AIS3 Final

Jeopardy 會有多道題目可以解,題目常見類型如下:

misc

綜合題,什麼都有可能,雜七雜八無法分類通常就會算成這個 …

Continue reading »

把M$ Excel的Sheets切成不同檔案

今天被問了奇怪的問題,覺得有價值筆記下來,VBA不解釋

Sub Main()
    If MsgBox("Hi, Split sheets to files?", vbYesNo) = vbNo Then Exit Sub
    Dim xPath As String
    xPath = Application.ActiveWorkbook.Path
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each xWs In ThisWorkbook.Sheets
        xWs.Copy
        Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xls"
        Application.ActiveWorkbook.Close …

Continue reading »

九九乘法Code

九九乘法表是很常見的作業,常常出現在剛講完迴圈的時候讓大家練習一下

我們先來看看這個最基本的C語言版本:

#include <stdio.h>

int main () {
    int i, j;
    for (i = 1; i <= 9; i++)
        for (j = 1; j <= 9; j++)
            printf("%d x %d = %2d%s", i, j, i * j, j == 9 ? "\n" : ", ");
    return 0;
}

這是VB

Dim i As Integer, j As Integer
Dim output As String …

Continue reading »

我的Linux Mint筆記

root那些大小事

使用root身份相等的權限執行指令

sudo <指令>

把目前的terminal暫時切換到root身份(exit會退回原本的user)

sudo -i

Grub2 設定

grub.cfg 在 /boot/grub/grub.cfg

但是他是組合出來的,所以要改設定來源,grub目錄本體放在 /etc/grub.d

內容有

00_header
05_debian_theme
06_mint_theme
10_linux
10_lupin
20_linux_xen
20_memtest86+
30_os-prober
30_uefi-firmware
40_custom
41_custom
README

其中預設項目以及預設讀秒在 00_header ,請加入以下兩行來設定預設項目(從0開始數)和倒數讀秒

# Do this as early as possible, since other commands …

Continue reading »

我的vim筆記

 goto start
     [[
 goto end
     ]]
 goto 1st line
     gg
 goto {N} line
     {N}G
 goto last line
     GG
 goto first character of line
     0
 goto last character of line
     $
 search
     /string
 next match
     n
 prev match
     N
 multiple {str} {N} times
     {N}i{string} ESC
 auto indent lines below
     =G …

Continue reading »

前端好朋友之一些好用的網站蒐集

從我的Bookmark裡面壓榨萃取出來的精華,請慢用

Continue reading »

reset.css?normalize.css?可以吃嗎?

好不容易寫好了一份CSS。換個Browser突然獵奇了?IE傲嬌不聽話欠調教? 不同的Browser間會產生差異是因為,各家CSS預設值並不相同 Ex:

Browser A裡面,div的padding預設是6px Browser B裡面,div的padding預設是4px

這時候如果你寫的CSS對齊的很精準...換個Browser就哭哭了! 所以我們透過重新定義所有元素的預設值,不使用瀏覽器的預設值,就可以讓他們乖乖聽話了!

說好的載點呢?

https://github.com/necolas/normalize.css

reset.css如何?

reset.css會把所有element預設的padding, margin, ...全部變成0,font-size全部100%,還要自己手動調整,其實有點麻煩

normalize.css是給你一個共同的default,你就不需要重新定義heading的font-size,不用重新定義p的line-height,比較節省時間。

Continue reading »

一個JavaScript小遊戲:BOXES!


為了好玩和練習而寫的小遊戲 BOXES!

  • 一次消除 2 個方塊 -30 分
  • 一次消除至少 3 個方塊則一個一分
  • 一次消除超過 5 個方塊有額外的分數獎勵 

Continue reading »

[C#]路徑搜索演算法(DFS、BFS)、Flood Fill(Recursive)

%E6%9C%AA%E5%91%BD%E5%90%8D.png

點我下載 C# 專案

操作方式: 按住Z, X, C + 滑鼠點擊 / 拖曳 可以清除、設定起點、設定終點

這裡用到了兩個容器:Stack 和Queue

Stack的操作:Push (推入) / Pop (取出) Stack的操作特性:有底容器

real_stack.png

像是一個有底容器,同一層只能有一個物件存在,先放進去的東西比較晚出來,比較晚放進去的東西先出來

Queue的操作:Enqueue (排入) / Dequeue (取出) Queue的操作特性:排隊

queue.png

Continue reading »