公告版位
需要找什麼嗎? 左邊分類或許可以幫助你...

目前日期文章:201302 (39)

瀏覽方式: 標題列表 簡短摘要

nProtect GameGuard (韓國製的反外掛):

http://global.nprotect.com

 

APEX (中國製的反外掛):

http://www.apexanti.com/

 

 

 防外掛基本原理:

遊戲數據保護的歷史暨方法
自1980年代至今,很多遊戲都有「鎖碼數據管轄」。當時並沒有修改器,祇是純粹保護可能由故障導致的錯誤數據。近年的遊戲更加上「將數據乘上不同數字來記存」、「對數保護」、「防止記憶體干擾」等機制來保護數據。茲讓小的來介紹一下:

黃彥霖 發表在 痞客邦 留言(0) 人氣()

我目前有兩個資料庫,一個是 postgres 另一個是 test 資料庫。今天我想要備份 test 資料庫,且 test 資料庫裡面有 my 資料表。

 

1

 

今天我只要在 test 資料庫上 按下滑鼠右鍵,選擇裡面的備份。

 

2

 

接著會進入這裡,選擇好你要備份的路徑,編碼方式、備份格式...等等

 

黃彥霖 發表在 痞客邦 留言(0) 人氣()

假設我新建一個表:CREATE TABLE my ( use   text,  pw   text );

插入一個資料 aaa111aaa 到 use 欄,bbb222bbb 到 pw 欄 且是經過 MD5 加密的:

INSERT INTO my (use,pw) VALUES (md5('aaa111aaa'),md5('bbb222bbb'));

 

此時我們搜尋 my 表:SELECT * FROM my ; 會得到以下數據:

use                                                         |                    pw
--------------------------------------------------+-------------------------------------------------
6248568d882f68e086bc1b557eba13a6 | 199d0afd164d634563fbfec5dfa29f7d

由上我們可以發現原先資料 aaa111aaa 與 bbb222bbb 資料都被加密了。

黃彥霖 發表在 痞客邦 留言(0) 人氣()

宣告一個 Map 的規則是:m := map[<Key鑰匙型態>]<Value型態>{}
如以下範例:

    m := map [intint {}
    m := map [stringint {}
    m := map [intstring {}
    m := map [int] *int {}
    ....等等


但是我們也可以在宣告的時候就順便給值:m := map[string]int{<key值>:<value值>, <key值>:<value值>}

黃彥霖 發表在 痞客邦 留言(0) 人氣()

        請先在命令提示字元中安裝 Go 的 PostgreSQL 驅動。

最新資訊可以參考:https://github.com/lib/pq
命令提示字元中輸入:go get github.com/lib/pq 
接著再輸入:go install github.com/lib/pq
如果沒有出現任何錯誤訊息的話,恭喜!! 安裝驅動完畢 !!

        我先在 PostgerSQL 建立一個 test 資料庫,使用者名稱是 postgres,密碼是 a 
接著,我在 test 資料庫中新增一個名稱為 my 的資料表,裡面分別有 use 與 pw 欄位。

他們看起來像這樣:

黃彥霖 發表在 痞客邦 留言(0) 人氣()

假設有一個 hello.go 檔,他必須放在 <你的目錄>/src/a/hello.go 上,src 一定要是這個名稱,Go 編譯器會找不到。接著 hello.go 底下的程式碼第一行醫定要寫 package a,因為你這個檔案是放在 a 資料夾底下。

接著開啟命令提示字元,將目錄切換到 <你的目錄>/src/ 路徑,接著輸入:go install a ,它會自動幫你編譯,並且安裝,接著我們主程式只要 import a 就可以呼叫。

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()

在命令提示字元中 ( 按 Win + R 輸入:cmd ),輸入:systeminfo 即可顯示電腦所有資訊

如下圖:

 

dddd  


黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
        "fmt"
)

func main() {
       x := 3                          // 宣告 x 等於 3
       y := &x                        // 宣告 y 指向 x
       fmt.Println(*y, x)         // 輸出 : 3 3
       *y = 5                         // 指針 y 等於 5
       fmt.Println(*y, x)         // 輸出 : 5 5

黃彥霖 發表在 痞客邦 留言(0) 人氣()

簡單版本:

package main

import (
       "fmt"
       "net/http"
)

func index(w http.ResponseWriter, r *http.Request) {
       fmt.Fprintf(w, "<h1>Hello !</h1>")
}


黃彥霖 發表在 痞客邦 留言(1) 人氣()

package main

import (
       "crypto/md5"
       "crypto/sha1"
       "crypto/sha256"
       "fmt"
       "io"
       "os"
)

func main() {

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
       "encoding/base64"
       "fmt"
)

func main() {
       data := "彥霖的部落格:http://lolikitty.pixnet.net"
       fmt.Println("加密前文字:", data)

       code := base64.StdEncoding.EncodeToString([]byte(data))

黃彥霖 發表在 痞客邦 留言(1) 人氣()

Json 編碼 1:

package main

import (
       "fmt"
       "encoding/json"
)

func main() {
       m := User{"乃木坂春香", "abcde@yahoo.com", "0932-111-222", "Japan"}
       b, _ := json.Marshal(m)
       fmt.Println(string(b))

黃彥霖 發表在 痞客邦 留言(0) 人氣()

JavaZone 2012 年度大片《Java搶劫》中文

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()

增加 Goroutine 並發數量:

      要增加 Goroutine 並發數量,除了要增大 RAM 記憶體之外,還要增大作業系統的:虛擬記憶體 !! 根據我之前測試,我 RAM 有16GB,然後我寫了一個測試程式,查看最高可以乘載多少並發數量,發現最高只能承受 170萬條 Goroutine ,此時記憶體只使用8.5GB,然後作業系統跳出記憶體不足 !! 我明明裝16GB記憶體但是只使用8.5GB 卻跟我說記憶體不足? 於是我調了作業系統的虛擬記憶體後,把虛擬記憶體擴大到10GB,發現它可以承受 400萬條 Goroutine !! ( 此時16GB物理記憶體已滿 ),由此可知要增加 Goroutine 執行數量,調虛擬記憶體是必要的手段,否則 RAM 在大也無用...

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
        "fmt"
)

func main() {
       A()

       fmt.Println("B():", B())

       C(3, 5)

       a, b := D()
       _, c := D() // 底線代表不使用

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
    "fmt"
)

func main() {
   fmt.Println("For 的正常寫法:")
      for i := 0; i < 5; i++ {
         fmt.Println(i)
   }

   fmt.Println("For 的平行寫法:")

黃彥霖 發表在 痞客邦 留言(0) 人氣()

注意事項:函式開頭大寫代表公開函式 (Public Function),函式開頭小寫代表不公開函示 (Private Function)

預設模組
回傳  常數  用途
 i, k  range <[]array> 這只能用在 for 迴圈上的(陣列、通道), i = 遞增,k = 該陣列的 i 地址的值
回傳 函數 用途
   print()  列印  
   println()  換行列印 
   len(<[] array>)  取得"實際儲存個數"的陣列大小
   cap(<[] array>)  取得"分配個數"的陣列大小
     
     

 

runtime 
執行時期模組
回傳  常數  用途
 string  runtime.GOOS  回傳目前作業系統名稱(非版本),如:windows
回傳 函數 用途
int  runtime.NumCPU()  回傳目前物理 (現實中) CPU 數量
void  runtime.GOMAXPROCS(n int)  設定 Golang 運行時可以使用的CPU數量
     

 

 

 

 

 

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
   "fmt"
   "time"
)


func main() {
   s := time.Now()

    // 你要測試的程式碼:例如迴圈...

黃彥霖 發表在 痞客邦 留言(0) 人氣()

Erlang 官方網站:http://www.erlang.org/

Erlang 下載點:https://www.erlang-solutions.com/downloads/download-erlang-otp

在 Windows 安裝好 Erlang 後,請執行 Erlang ,執行檔圖片大概長這樣:

E1  

開啟後會進入 Erlang 的執行環境:

E2  

之後在C:/MyWork/ 建立一個記事本 helloWorld.erl 並且輸入以下程式碼:

-module(helloWorld).

-export([printHelloWorld/0]).

printHelloWorld() ->

黃彥霖 發表在 痞客邦 留言(0) 人氣()

在 Eclipse 中 Help → Install New Software → Add 輸入:http://erlide.org/update

接著就下一步下一步安裝即可。

 

 

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()

1 2