2013/12/21

ToS那些大小事

一開始是受到了這篇文章 (http://tech.shaolin.tw/posts/2013/11/05/towerofsaviors-automatically-battle-without-phone)的啟發
兩個網友(估且稱之A、B)同時都成功的弄出了脫機
後來意外發現了更多帳號的秘密
開新帳號的限制、脫機洗首抽...兩個人洗了6千多個帳號
後來A的帳號被賣卡,B對神魔本身好像也不是很有興趣 XD
有鑑於官方團隊處理外掛的態度真的太消極
還有A被賣卡
所以出來爆料一下

前幾天再apk.tw貼的文(http://apk.tw/thread-448810-1-1.html
但是好像沒有人裡我 TAT
所以在Blog再發一次

  • ToS是用C#配Unity Engine寫的,代表你可以輕易的看到她的Source和任意修改
  • 隨機數有兩個,一個是整數,一個是float
  • 隨機數的範圍是9~500
  • 只要知道你綁定的Facebook帳號,我可以幫你抽卡、打關卡,或者把六星卡餵給史萊姆,或者鎖你一輩子
  • 開新帳號的限制在Device ID,IP目前應該是沒限制,因為NAT架構,網路出去的都是同一個IP,要是限制IP會惹民怨
  • ToS的封包沒加密,走普通http連線,這意味著用公共WiFi玩ToS可能會被盜
  • 進入戰鬥後,可以用鈦備份把遊戲備份起來,萬一被打死了,不要按確定,直接用鈦備份還原就可以再打一次
  • 妲己真的很難抽,朋友A、B兩個人抽了六千多個帳號,加起來不超過5隻
  • 朋友A被人賣卡了,所以發這篇文,懂技術的人自己要有分寸,下次會有更多的爆料
這是被攻擊、回血時的處理:http://pastebin.com/YgkdqmAg

這種遊戲,這種態度,不玩也罷!

2013/12/01

如何寫出安全的PHP網站

網站安全那些大小事

如果你正在學習使用PHP(其實任何語言都通用)開發網站...
請務必要注意到安全性的問題
特別是有開放留言、註冊功能之類的網站!

有留言板,就有人想 <script> ...
有登入系統,就有人想 'or''=' ...

可以寫<script>的留言板,黑客就可以偷走你的cookie
甚至偷走你的密碼,進入後台搞破壞
萬一你的密碼是萬用密碼,拿到之後每個網站都可以登入
那你就損失慘重了!

至於可以寫單引號的系統呢?
如果你寫了...

$query = mysql_query("DELETE FROM `messages` WHERE " .
                     "`mid` = '{$_POST['id']}' AND " .
                     "`del_code` = '{$_POST['code']}'");

像這樣具有刪除留言功能的留言板
那麼我只要搞破壞,在code欄位輸入了 ' or '' = ' ...
整個 SQL 命令就會變成

DELETE FROM `messages` WHERE `mid` = '' AND `del_code` = '' or '' = ''

看清楚了嗎?

or '' = ''

然後你整張資料表的內容就...
萬一這是使用者刪除帳號的功能呢?

只要把握一個原則,就可以寫出很安全的網頁


2013/11/30

CimiCimi小女僕機器人 Source Code

這是很久以前的黑歷史~
PHP + ajax (with jQuery)
想了解那時候寫這東西的背景就下載然後看README.txt吧
預覽圖:
Download:http://www.mediafire.com/download/tsf8dfs83whqr4x/cimicimi_source.7z

2013/11/17

使用Universal USB Installer製作整合Linux Mint Live USB與Windows 7 Installer

首先,廢話一下動機

我手邊的隨身碟有2G, 4G, 32G三支,2G塞不下Windows 7安裝光碟(2GB多),32G已經滿了 OTZ,4G那支又塞了 Linux Mint 15 ,於是只好先把4G那支清掉放Windows 7 Installer,讓我重灌...
後來要重建Mint的grub2又需要用到Mint Live USB,於是我就想,能不能把兩個塞再一起,反正容量也塞的下,研究了一下終於搞定了syslinux OTZ

你需要的東西...

在這裡我用的軟體是Universal USB Installer,可以在 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ 下載(無須安裝)

 Windows 7 SP1 Professional Traditional Chinese ISO下載(官方載點,合法下載):
(這是 "乾淨" 且 "合法" 的下載點,並沒有任何破解、啟動器之類的東西,請自備正版序號)

Windows 7 Professional x86 Traditional Chinese(這是32位元版本)
Windows 7 Professional x64 Traditional Chinese(這是64位元版本)

雖然說是Professional版本的ISO,但是Windows 7的安裝光碟只透過了其中一個檔案來設定這是什麼版本,也就是說,只要刪除該檔案就可以安裝任意授權版本的Windows 7
But... 人生最OOXX的這個But!
But... 如果你的序號是專業版,那你還是只能裝專業版,沒辦法輸入專業版序號安裝旗艦版之類的,請務必注意到這一點。

Linux Mint 的 ISO 在這裡下載:http://www.linuxmint.com/download.php
或者你想用 Ubuntu 也行:http://www.ubuntu-tw.org/modules/tinyd0/
// 聽說最近 Ubuntu 有點邪惡,記得驅魔: https://fixubuntu.com/

重灌Windows之後,修復Linux Mint(Ubuntu)的開機選單(grub2)

我的筆電有裝雙系統,Windows 7和Linux Mint 15
(當然,Ubuntu也適用同樣的方法)
昨天我重灌了Windows 7,所以需要重建grub2
上網找了很多東西之後,分享一下我成功的方法

先用 Live CD 或是 Live USB 開機,然後打開terminal

# 我的mint在sda3,/boot沒有另外mount
mount /dev/sda3 mnt
sudo mount --bind /dev /mnt/dev
# 如果你的/boot有另外mount
#sudo mount --bind /boot /mnt/boot
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt/
# 我的boot hdd在sda
grub-install /dev/sda
update-grub

finally... sudo reboot and enjoy your Linux Mint :D

參考文獻:http://wiki.ubuntu-tw.org/index.php?title=GRUB2%E4%B8%AD%E6%96%87%E6%8C%87%E5%8D%97%E7%AC%AC%E4%BA%8C%E7%89%88%28%E4%B8%8A%EF%BC%89#.E6.96.B9.E6.A1.88_3_-_CHROOT

2013/09/29

如何在Blogger內幫程式碼上色

像這樣美美的Code大家都愛


#include <stdio.h>

int main() {
    printf("Hello, %s", "Inndy");
}

問題是到底要怎麼做呢?

我使用的是Google開發的 google-code-prettify 這個JavaScript Library
還好Blogger很好心的提供了自訂HTML Template的功能



所以我們可以在裡面塞自己的JavaScript / CSS進去,當然如果你想塞在文章內也可以 XD
主要的 Code 在 http://google-code-prettify.googlecode.com/svn/trunk/src/
而且有提供幾種 Style http://google-code-prettify.googlecode.com/svn/trunk/styles/index.html
我用的 Style 是從 Doxy 這款,再稍微小修改

廢話不說了,我們來動手吧

2013/09/28

九九乘法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

For i = 1 To 9

    For j = 1 To 9
        Dim v As Integer
        v = i * j 
        output = output & CStr(i) & " * " & CStr(j) & IIf(v < 10, " =  ", " = ") & CStr(v) & IIf(j = 9, vbNewLine, ""))
    Next 
Next

Print output

2013/09/21

我的Linux Mint筆記

root那些

使用root身份相等的權限執行指令
sudo <指令>
把目前的terminal暫時切換到root身份(exit會退回原本的user)
su
su指令,需要知道root的密碼才能切換身份,但是root的密碼不該有人知道,或者說不該有人以root的身份登入系統,因此就有了sudo這個命令的誕生,如果想暫時切換成root身份,可以用
sudo su
即可(sudo指令會向你再次確認目前使用者的密碼)

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 might depend on it.
# (e.g. the `loadfont' command might need lvm or raid modules)
for i in ${GRUB_PRELOAD_MODULES} ; do
  echo "insmod $i"
done

GRUB_DEFAULT=0
GRUB_TIMEOUT=5

if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=10 ; fi
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=auto ; fi
修改完成之後執行
sudo update-grub
來更新grub menu

2013/09/20

我的vim筆記

goto start
    [[
goto end
    ]]
goto 1st line
    gg
goto {N} line
    {N}G
goto last line
    G
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
    =G
insert after
    o
insert before
    O
remove character
    x
repeat last command
    .
replace {A} with {B} in line {M} to {N} ('g' stands for replace all)
   :{M},{N}s/{A}/{B}/g
replace {A} with {B} in line {M} to end
    :{M},$s/{A}/{B}

2013/09/15

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

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

瀏覽器革命統一天下之什麼是Reset.CSS?


Reset CSS就對了!

同一份CSS,換個瀏覽器突然獵奇了?IE傲嬌不聽話欠調教
個瀏覽器間會產生差異是因為,各家瀏覽器的CSS預設值並不相同
Ex:
瀏覽器A裡面,div的padding預設是6px
瀏覽器B裡面,div的padding預設是4px
這時候如果你寫的CSS對齊的很精準...換個瀏覽器就哭哭了!
所以我們透過重新定義所有元素的預設值,不使用瀏覽器的預設值,就可以讓他們乖乖聽話了!

要注意的地方!

  •  因為margin和padding會被設定成0,所以原本的留白會不見,要自己設定才有美美的網頁喔
  • 當然你也可以自己挑一個預設值,不一定要用0

說好的載點呢?

2013/09/07

一個JavaScript小遊戲:BOXES!

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

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

2013/09/02

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


點我下載 C# 專案

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

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

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


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

2013/08/21

【Root Req.】Remove Camera Shutter Sound for Samsung Smartphone / 移除Samsung該死的快門聲

首先你要先Root你的手機,一樣不解釋

 這裡我直接用adb來搞定他

adb wait-for-device
adb shell

接著進入shell之後

su
cd /system/media/audio/ui
ls Shutter*

你就會看到Shutter.ogg這檔案的存在,它就是快門聲
如果是S3以後,支援連續拍照的,還有另一個是連續拍照的聲音
可以刪掉他或是改名就好
剛剛在S3上面砍的時候他不讓我動
原因是因為/system被mount成read-only
解法如下:

mount -o remount,rw /system

把它mount 成read/write就好了

2013/08/18

【新手不適合】高效率移轉Android內的Line對話紀錄

如提,新手不適合此篇文章,因為沒有Step-By-Step的教學

所以請不要問我如何Root之類的問題,我不會回答


地球人都知道,Line的對話紀錄以sqlite3的形式存在
/data/data/jp.naver.line.android/databases/naver_line
  1. 這裡面,傳統的方式是
  2. Backup舊的db
  3. 新手機上註冊完畢,並且把新的db給copy出來
  4. 從舊db中dump出對話紀錄
  5. import到新的db

這方法很直覺很簡單,但是萬一你像我一樣遇到一支手機,裡面的紀錄有上萬筆大概會弄到哭哭!
匯出可能還不是問題,在匯入的時候我等了好久阿 OTZ (筆電太爛不給力

所以我們改變作法,我們從新的db撈出所有非對話紀錄的資料,然後蓋到舊的db上面,再把舊的db蓋回手機

以上是舊db要保留的資料
如圖所示,從新的db中刪除以下資料表

2013/07/21

Notepad++密技 內建自動完成 / 手寫HTML神插件 / HexEditor插件

Notepad++ 官方載點

http://notepad-plus-plus.org/download/

 Auto Complete

很多人可能不知道,Notepad++有內建自動完成和參數提示的功能!
【設定 ( T )】 -> 【使用者自訂...】 -> 【備份 / 字詞自動完成功能】
同時其實他也有提供備份的功能



Zen Coding

有個叫做Zen Coding的好東西,可以把HTML / CSS的開發速度提升到極致
Zen Coding Introduction
連結:https://code.google.com/p/zen-coding/

Hex Editor

Hex Editor Plugin



連結:http://goo.gl/gjkbe

2013/03/26

【已經無法使用】YoutubeDownloader [Web]

【已經無法使用】

Google官方表示不歡迎...所以也不更新了 :P
Preview:

Link Here

2013/03/05

C++動態二維陣列 / Dynmaic 2D Array in C++

#include <cstring> // for memcpy
#define NEW2D(H, W, T) (T **)new2d(H, W, sizeof(T))
#define CPY2D(TAR, SRC, H, W, T) cpy2d((void**)TAR, (void**)SRC, H, W, sizeof(T))
#define DEL2D(P) (delete [] P)

void cpy2d(void** tar, void** src, int h, int w, int size) {
    for (register int i = 0; i < h; i++)
        memcpy(tar[i], src[i], size * w);
}

void* new2d(int h, int w, int size)
{
    register int i;
    void **p;
    p = (void**)new char[h * sizeof(void*) + h * w * size];
    for(i = 0; i < h; i++)
        p[i] = ((char *)(p + h)) + i * w * size;
    return p;
}

Using Demo...

int **map = NEW2D(16, 32, int); // Height, Width, Type
scanf("%d", &map[15][31]);
printf("%d\n", map[15][31] + 1);
int **map2 = NEW2D(16, 32, int); // Another 2D array
CPY2D(map2, map, 16, 32, int); // Copy to another array
printf("%d\n", map2[15][31] + 2);
DEL2D(map); // Free meory
DEL2D(map2);
From... Here (in Chinese)

2013/02/07

iAutoUpdater -- 數據自動更新神器

預覽圖:


載點:

2013/02/04

Batch取得桌面路徑 Get Desktop Path In Batch

煩惱Windows Batch該如何取得桌面路徑嗎?不解釋,上Code
(Windows7, Windows XP測試通過)

2013/01/13

CombineImage -- 截圖合併的好幫手

說明:
方便整合截圖、多圖檔合併,可以從剪貼簿裡面讀取圖片、檔案並且貼上。
使用方法:
  1. 複製要合併的檔案(支援一次多檔) / 複製要合併的圖片 
  2. 貼上到程式內
注意!必須要有.NET Framework 4.0!


About This:
It makes you convenience to combine many images / image files. It can paste image / image file from clipboard.
How To Use:
  1. Copy image files (Allow for multiple files) / images that you want to combine.
  2. Paste it to this application
Important! .NET Framework 4.0 Required!

預覽 / View:


網誌存檔