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}