.Net 圖片灰階化處理 GetPixel SetPixel

利用 GetPixel 及 SetPixel,將圖片轉換為灰階。

using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string Photo_route = Path.Combine(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Tulips.jpg");
            Bitmap b = (Bitmap)Bitmap.FromFile(Photo_route);
            pictureBox2.Image = (Bitmap)Bitmap.FromFile(Photo_route);
            Stopwatch sw = new Stopwatch();
            sw.Start();
            //對每個pixel取出處理
            for (int y = 0; y < b.Height; y++)
            {
                for (int x = 0; x < b.Width; x++)
                {
                    Color color = b.GetPixel(x, y);
                    int avg = (color.R + color.G + color.B) / 3; //RGB同除3就會變成灰階
                    b.SetPixel(x, y, Color.FromArgb(avg, avg, avg));
                }
            }
            sw.Stop();
            pictureBox1.Image = b;
            MessageBox.Show(sw.ElapsedMilliseconds.ToString() + " /ms");
        }
    }
}

  2012-06-20      ez      .NET
上傳檔案請勿只檢查副檔名

有些網站需要提供上傳檔案功能,為了安全考量會限制某些檔案才允許上傳,例如:jpg,gif,png,通常不會允許具有程式的檔案exe,bat,com,php,asp,aspx...。

以下分別測試IIS6及IIS7,看看安全性如何!  

1. 首先建立一個asp檔案,內容為下:

<%=Request.ServerVariables (REMOTE_ADDR)%>

2. 將檔名命名為 b.asp;.jpg,如下圖:


  2011-12-05      ez      IIS
.Net Function 接收多個參數

使用C#在Function接收多個參數,可以使用params string[] args,就可以接收多個string了。

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Fun1("a");
            Fun2("a", "b", "c", "d", "e");
        }

        //接收一個參數
        static void Fun1(string arg1)
        {
        }

        //接收多個參數
        static void Fun2(params string[] args)
        {
        }
    }
}

  2012-06-20      ez      .NET
.NET 壓縮程式記憶體用量

.NET 程式必需載入 .NET Framework ,所以記憶體用量至少5MB以上

其實可以透過 SetProcessWorkingSetSize API 來達到記憶體壓縮的效果 以下為程式碼範例:


  2012-06-04      ez      .NET
.Net 加殼 sixxpack 2.2 免於受到反向工程的威脅

加殼壓縮是一種對EXE檔案的數據壓縮及加密保護,可以將EXE檔案壓縮成自我解壓檔案,並能隱藏解壓進程。

在免殺技術里所謂的殼與偽裝殼其實就是壓縮與外層數據偽裝,其實是利用特殊的演算法,對可執行文件與DLL文件里的資源進行壓縮與對文件的描述、版本號、創建日期、修改軟體、系統執行需求等外層數據進行偽裝。

  • 減少檔案大小:可節省磁碟空間、加速網路傳輸。
  • 加密內容:可以避免程式遭到任意竄改、亦可對防毒軟體免殺。

  使用 Reflector 可以輕易的將 .NET 程式進行反向工程!

 


  2012-06-04      ez      .NET
hiberfil.sys 檔案如何刪除

hiberfil.sys 電腦休眠時的記憶體暫存檔案,將休眠功能取消需透過指令方式!

  1. 利用系統管理員身分開啟cmd命令提示字元
  2. 輸入 powercfg -h off 關閉休眠,並按下 Enter 鍵
    假如要恢復請輸入 powercfg -h on 並按下 Enter

  2011-12-04      ez      Windows
.NET 使用 Dotfuscator Software Services CE 免於受到反向工程的威脅

Dotfuscator 是主要的 .NET 模糊化和壓縮程式,可協助保護程式免於受到反向工程的威脅,同時使程式更小巧且更有效率。

此外,Dotfuscator 現在可將其他預先建立的功能插入 .NET 應用程式,以提供使用方式追蹤、竄改偵測和到期等功能。

Microsoft Visual Studio 2010 版本包含 PreEmptive Solutions Dotfuscator Software Services Community Edition 5 (Dotfuscator CE 5)的免費授權。

如同包含在 Visual Studio 2008、2005 和 2003 中的舊版 Dotfuscator CE,它會提供用來保護及強化 .NET 應用程式的工具。

Dotfuscator CE 5 使用於編譯的組件,不需要額外的程式設計,甚至也不用存取原始程式碼。

除了簡易模糊化之外,Dotfuscator CE 5 還針對開發人員、架構設計人員和軟體測試人員提供一系列新軟體服務。

Dotfuscator CE 5 中包含的新程式碼保護、監視和管理功能範例為:

  • 竄改防禦:偵測遭竄改應用程式的執行、傳輸事件警示,以及結束遭竄改的工作階段。
  • 應用程式到期行為:編碼「生命結束」日期、當應用程式在到期日後執行時傳輸警示,以及 (或) 結束已逾期的應用程式工作階段。
  • 工作階段追蹤:判斷已執行的應用程式、這些應用程式的版本,以及執行時間。
  • 功能使用方式追蹤:判斷正在使用的功能、順序及執行時間。

  2012-06-04      ez      .NET