(黃獻德) Hsien-De Huang | E-Mail:TonTon (at) TWMAN.ORG | TonTon (痛痛)
Malware Analysis Network in Taiwan (MiT) | 惡意程式分析網在台灣 (抬丸郎)
Deep Learning (深度學習), Malware Analysis (惡意程式分析), Ontology (知識本體)
Android Reverse Engineering (Android 逆向工程), Type-2 Fuzzy Logic (第二型模糊邏輯)

ONE PIECE (海賊王)

ONE PIECE (海賊王)

2013年4月20日

在 Windows 7 x86_64 與 Visual Studio 2010 的 VM 下跑 Open GL

話說,這篇一樣是整個系列文啦 ...


好不容易的建好了系統,也好不容易找到了應用的地方 ( 公文系統),但總覺得實在是有點浪費所謂的 IaaS ... 所以我突然想到這個辦法 ... 就是直接在這些 VM 上裝 Visual Studio 2010 給人來練習 Open GL !!! xD

很難得接觸這個東西 ... 畢竟我寫程式一向超 普龍共 的 ! xD
Open GL 和 Visual Studio 我就不多說了 ! 基本上也是想做給系上學生用 !
使用到的軟體及版本分別為 Microsoft Windows 7 SP1 x86_64 跟 Microsoft Visual Studio 2010

請先下載 glut-3.7.6-bin.zip,找到兩個地方可以下:

下載完解壓縮後可以看到像下面這樣,用到的有 glut32.dll, glut32.lib, glut.h


接著就是要準備 copy 檔案了 ! 首先是 glut32.dll copy 到 C:\Windows\SysWOW64 底下
( 若是 x86 則是放到 C:\Windows\system32 底下 )


再來是 glut32.lib copy 到 C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Lib
( 若是 x86 則是放在 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib )


最後是 glut.h copy 到 C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
(若是 x86 則是放在 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl)


到這邊就可以開始準備測試是否可以順利運行了 ! 打開你的 Visual Studio 2010


新增一個空專案,並且新增一個 .cpp 檔


範例程式碼如下:

#include <gl/glut.h>

void Display(void)
{
    glPushMatrix();
    glBegin (GL_TRIANGLES);          // 開始劃三角形 
        glColor3f (1.0f, 0.0f, 0.0f);         // 設定輸出色為紅色 
        glVertex2f (0.0f, 1.0f);           //(x1,y1)=(0, 1)
        glColor3f (0.0f, 1.0f, 0.0f);         // 設定輸出色為綠色 
        glVertex2f (0.87f, -0.5f);            //(x2,y2)=(0.87,-0.5)
        glColor3f (0.0f, 0.0f, 1.0f);         // 設定輸出色為藍色 
        glVertex2f (-0.87f, -0.5f);           //(x3,y3)=(-0.87,-0.5)
    glEnd ();                               // 結束劃三角形 
    glPopMatrix();
    glutSwapBuffers();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
    glutInitWindowPosition(100, 100); // 設定視窗位置 
    glutInitWindowSize(400, 400); // 設定視窗大小 
    glutCreateWindow("Colorful Triangle "); // 設定視窗標題 
    glutDisplayFunc(Display);  // 呼叫函數 
    glutMainLoop();
    return 0;
}


接著就可以順利看到畫出來的三角形啦 ! xD 

(至於 Open GL 的 程式怎寫 ? 嗯 ... 我也不會 ~ 攤手 ~ )


最後, Visual Studio 2010 全部安裝的話還真不是普通的大啊 !

Reference:

http://www.cc.ntu.edu.tw/chinese/epaper/0024/20130320_2410.html

接著來說說怎樣讓 VM 也可以跑
一般透過 KVM 來虛擬化出來的 Windows 7 的硬體大概是這樣 ...


可以注意到 ... 顯示卡幾乎是完全沒作用的狀態 ....

於是找到了這個東西 " Spice: http://spice-space.org ",大致上來講就是 VM 上的顯卡會變比較強一點點啦 ... 所以啦 ! 請先在 host 上執行這樣的指令 ....

# yum install spice-server spice-client spice-protocol cairo-spice ffmpeg-spice-libs ngspice pixman-spice spice-glib spice-gtk spice-gtk-python spice-gtk-tools spice-xpi -y


這邊我習慣在 host 上面透過 Virtual Machine Manager ( Libvirt )來控制,所以在新增一台 VM 時記得移除 Display VNC 並新增 Display Spice .... 然後 video 處改為 qxl ...


再來請到 http://spice-space.org/download/windows/qxl/qxl-0.1-16/ 這邊下載驅動程式


掛成功後您可以看到這樣的資訊 ....


嗯 ! Windows 7 x86_64 上的驅動程式數位簽章問題 ... 浪費了我兩天 ...

最後我是另外做一個 x86 的 Win7 ... 然後居然可以跑了耶 ! xDDDDD

雖然一度自以為順利的找到了相關的做法 .... http://www.ngohq.com/?page=dseo

1. Download the application from the link below. Right click on it and choose "Run as administrator". Inside its main menu, press on the “Enable Test Mode” button and follow the instructions on the screen. This will enable TESTING mode, which allows unverified system files to be loaded. 

2. Now all you have to do is to add the unverified signature to the required system files. To do so press on the “Sign a System File” button from the main menu, and enter specific filename including full path. For example: if ATITool64.sys from C:\Windows\System32\drivers refuses to load due to driver signature enforcement, you should type: “C:\Windows\System32\drivers\ATITool64.sys”, and if you would like to sign more than a single file, just repeat this procedure until you’re done, and finally reboot. 

After you enabled Test Mode and added signatures to the required system files, they should bypass Windows’s driver signature enforcement and load without any issues. However, if for some reason you are interested to revert it, you can re-launch the application, choose “Disable Test Mode” from the main menu, and reboot. If you encounter issues or having questions, feel free to post it on our forums. Note: DSEO requires administrative privileges (Run as administrator).

可惜這樣會把系統變成在測試模式 ....