作者WarIII (13thD@rkfird@y)
看板PttBug
標題[轉錄]自動推文簽名檔bug
時間Mon Aug 10 00:17:16 2009
※ [本文轉錄自 AkamatsuKen 看板]
作者: gusion () 看板: AkamatsuKen
標題: Re: [建議] 斬一斬吧
時間: Tue Jul 28 14:33:14 2009
※ 引述《andy199113 (中川翔子最高!!)》之銘言:
: ※ 引述《verycold (係金a)》之銘言:
: 我剛剛一試 終於知道問題在哪了XDDDDDDDDDDDDD
: 我在這版第一次PO文沒想到是這種時候!
: 不是有個horse5566lee嗎? 他最愛把簽名檔
: 放成以下這樣,內容已經做過處理,所以大家都看的到
: --
: 滑鼠左鍵複製紅色方塊之後再按滑鼠右鍵貼上.你會後悔!!!請不要照著做!
: X
: 測試
: Y
:
後面吃掉
因為中文字是由2bytes組成的
可是在這邊卻是一個字元一個字元讀取
所以某個中文字可能是一個無意義字元+某個英文字或數字組成
造成讀取的時候誤判
再來關於那串文字的問題,其實這是可以設計的
以下的任一個字複製貼上會相當於's'↓
詉榊鎅猹鑸鷭顪飉鰆盭鏀瓋雟繟鮢褼疄鮀褭瘰廥鋊蓧犘廛酲綼滻嫳跴腠煲酨鈤菋猧敧
喒莗珺掇唼茳烞帩苫洒姠疌弤耴卲宄鱷彎礬瀛瀏臃龍窺駒編廣
製漳零群新鈕盜愀連猖御
酒盎峴貞毗哀泅孟究吱存叫山澵觧鹪龀荥
以下的任一個字複製貼上會相當於'A'↓
乪辠彍冚纛讎糱蠝鐌嚳譂懻蹚瓀鞝蕼檃鋾蕆濉噦踒膕澉噀裬禈槎劀觠稐毷嫀軦羢湜愊釷
耛淲崒酏笓毣哻竑枻茍泝坽杕灱乜艷譽顛韹鮮瞭錦澤適璀劈翠態農睪嫂詛渙媚莧毬婢蚊涉
唧耍括隹服呸杗
你再丕乙x∕,孭声悪苊滠锗唢
以下的任一個字複製貼上會相當於'k'↓
蘐椀瞓犱圞鷦鑏闥鰈爔鏦爇鎥簥鮨螶璭骿螄瘯幧鋘蔝熥嶡鄢緎毾嫜跮罬煇愲鈒菣犅揇噅
莝珶掽剬胹烓屔苙氠姶玠岰玔冹刌驥儼瀲攀歸翳鴕磬餒糊嶔蝕榭隕綏搔鄂痘惰趾焊彗逃疼
峭虺柢勃法姍男吻妄
右女π溆椤锶怄
所以這段文字↓
滑鼠左鍵複製紅色方塊之後再按滑鼠右鍵貼上.你會後悔!!!請不要照著做!
就相當於輸入了's','A','k','A'
至於其他文字,可能兩個字元都是沒有意義的字元,所以沒有問題
我想一定有人問說我怎麼知道?
其實很簡單,寫個程式跑一下可以用的字瞬間列給你看
最後再測試、修改一下就行了
以下為參考程式碼(C++)↓
#include<iostream>
using namespace std;
int main()
{
char test[2] = {0,'s'};
int i;
for(i=-128;i<0;i++)
{
test[0]--;
cout << test[0] << test[1];
}
return 0;
}
這是列出相當於's'的中文字,只要改一下就可以找其他的字
希望這樣可以幫助大家想出解決的辦法
最後,這是我在這個版第一次發文,寫得不好請多見諒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.101.204
※ 編輯: gusion 來自: 140.113.101.204 (07/28 14:37)
1F:推 bohun:XD 07/28 14:38
2F:推 hansbobby:聽起來要從系統,讓看板搜尋(s)可以吃中文字再略掉中文 07/28 14:57
3F:推 donaldtsai:出來的那些字...好像會唸的沒幾個.... 07/28 16:34
4F:→ donaldtsai:不過最近亂版的好像沒那麼多了 07/28 16:36
5F:→ keinsacer:弄個要按指定按鈕(避開那堆中文字的)才能跳出的進版畫面 07/28 18:35
6F:→ andy199113:原PO超專業!! 厲害!! 07/28 22:59
7F:推 sky0513:驚見家宏,快拜! 07/28 23:49
8F:推 gw80132:驚見家宏,快拜! 07/29 01:36
9F:推 ssj0023:Adee是大帥哥 07/29 02:13
10F:→ blc:板主有沒有想要跟組務或站方反應一下啊? 07/29 10:59
11F:推 peter0911:crazybaby我愛你! 07/29 11:22
12F:推 MAHORA:有種越看越火的感覺....這種芭樂推文= =||| 07/29 11:34
13F:推 sinsendo:請問...雖然是題外話...這樣的程式有辦法用C來呈現嗎? 07/29 11:36
14F:推 jrdjedi:我後悔了 07/29 11:59
15F:推 ge1003:我後悔了 07/29 12:09
16F:推 OGC0609:我後悔了 07/29 12:20
17F:推 ming1053:赤松版都要變成bug討論版.... 07/29 12:38
18F:→ gusion:要改成C的話,只要把iostream改成stdio.h 07/29 14:29
19F:→ gusion:把cout改成printf就行了 07/29 14:29
20F:→ gusion:其實主要問題是ptt在進行看板搜尋時會濾掉不合法的字元 07/29 14:38
21F:→ gusion:所以搜尋看板時,應該只有打英文字會顯示 07/29 14:39
22F:→ gusion:假如不做這樣的功能,複製貼上那段文字後會找不到看板 07/29 14:39
23F:→ gusion:也就沒有這樣的問題了 07/29 14:40
24F:→ gusion:ps.可以去別家的bbs站試看看 07/29 14:40
25F:推 sinsendo:囧...我以為%c%c會當做兩個字元印出...沒想到竟然可以... 07/29 19:13
26F:→ sinsendo:請問,到底是為什麼會當做一個字印?而不是兩個字? 07/29 19:14
27F:→ sinsendo:另外...大部分的BBS站都是使用PTT的系統吧? XD" 07/29 19:16
28F:→ sinsendo:還有就是...如果不慮掉不合法字元,安全性上不會有問題? 07/29 19:17
29F:→ andy199113:建議把這篇轉去PTTBug板 建議他們改進吧! 原PO好強!!! 07/29 20:42
30F:→ andy199113:這篇其實可以變成應用成跑到某個板XDD 蠻棒的XD 07/29 20:44
31F:→ gusion:我也不知道為什麼會變成一個全形字,這是之前碰巧發現的 07/30 10:30
32F:→ gusion:轉錄的話我是沒有意見,看有沒有人要轉囉 07/30 10:31
33F:→ WarIII:路過 幫忙轉 這讓有心人搞可不止只有推文被鬧而已 08/10 00:16
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.64.179.17
34F:推 LPH66:這沒轍 只能宣導大家不要用這種簽名檔而已 08/10 05:18
35F:→ LPH66:再來就是宣導不要被這種簽名檔給騙了就是 08/10 05:18