Sunday, June 24, 2018

Nodejs_互動式網頁app 切換ppt

互動式網頁app 切換ppt


看到數學老師邊放投影片便走路演講遇到突然要寫字怎麼辦?。
透過node.js架設伺服器,掃描qrcode 進行認證進而切換ppt即時繪圖 node.js

資訊安全 與外掛羈絆?

外掛介紹?


以為要上台報告打太詳細囉,個人觀點拉別認真

外掛介紹與種類


記憶體修改應該一開始上課所說的屬於修改攻擊攻擊法的其中一種=而記憶體修改與外掛之間有有什麼關係,先來講講外掛有自動外掛和記憶體修改外掛和封包修改外掛,自動外掛就是像按鍵精靈,就是模擬鍵盤和滑鼠的動作不斷進行重複,像是掛在遊戲不斷定點打怪,再來就是封包修改外掛,clientserver端 在進行連線的時候,以遊戲來舉例的話,server端會給你腳色的血量和怪物的位置,然後client會取得你的血量,還是你的攻擊數值,然後在進行攻擊在這邊你可以修改封包來間接更改遊戲的數值,在遊戲裡如果lol有腳色躲在草叢裡這時候server端會發送封包給你跟你講那邊有人不要顯示
這時候你的用戶端你可以進行封包的竊聽然後再修改記憶體位置讓對面腳色顯示,因為大部分的伺服器只要你的client端發送的資料她都信,現在大部分的外掛都是按鍵精靈,和記憶體修改,封包修改與竊聽現在遊戲公司都會寫好封包加密你不知道封包在寫什麼竊聽也沒用,而最好寫的按鍵精靈,最好被遊戲擋掉也是按鍵精靈,如果一般來講你的按鍵精靈發送到遊戲裡面都是軟體級發送按鍵,就是用微軟內建的api去呼叫,api有分前台和後台,前台發送按鍵就是你視窗只能固定在最上層,而後台你就可以收在後面你的外掛還是可以持續對你得遊戲視窗發送,但是還是會被遊戲擋掉,最終辦法就是驅動級模擬按鍵winio.dll可以直接模擬鍵盤按鍵,前提你鍵盤要用ps2這樣才有效果,但是這只能可以前台,有了鍵盤按鍵,接下來就是要判斷什麼情況下你才要按下鍵盤的按鍵,你可以取得螢幕的像素點還是讀取記憶體的位置和封包竊聽來達到判斷是否要按鍵,再來來介紹這次要跟大家講的記憶體修改,因為就像我前面剛剛講的只要是用戶端講的服務器都信,當然有些服務器也會做判斷,來比對發送結果跟你執行結果來看看有沒有相符合,但是伺服器都不這麼做為什麼不這麼做呢,你一個判斷要卡幾秒,你想打一下怪物,卡個一秒這樣遊戲體驗不太好吧,所以能大多說不會多做過濾,所以記憶體修改可以做什麼事情呢,不侷限外掛,在軟體破解方面序號啊,都可以繞過去,如果反編譯能力過強的話
我們現在所打的程式都是由source code 然後編譯然後轉換成二進制檔,二進制看不懂r所以那些二進位的又會被轉為asm組合語言,什麼是組合語言就是像旁便那張圖一樣,我們用常用的呢
像是
Mov eax,1;
Cmp tmp,tmp2
Jmp xxxx








工具介紹



要怎樣觀看記憶體位置呢,有靜態分析ida和動態分析有ollydbg cheat engine


Ida可以去把你的程式碼他可以把你的執行檔裡面的執行檔機械瑪去化成流程圖讓破解者比較好分析,是意圖如下

然後再來就是ollydbg

左邊是機械瑪和asm組合語言,右邊的是暫存器等等再來就是
cheat engine:可以動態的去看你的記憶體位置和修改

這些是寫外掛的一些工具,下面來簡單示範怎樣修改記憶體裡面的

位置假設我要修改a變成1如果我是用修改器得怎樣做呢

模擬修改



程式執行後:這程式會一直跑
開啟我的cheat engin

可以看到上面已經加載了

點選左上角那個可以找尋進程 選擇你的main.exe按開啟

我們已經列印出a的變數記憶體位置

點這裡可以看到記憶體位置再來點右鍵

填入你的位置0x6ffe4c

可以發現你的變數位置在這裡現在回到這畫面

看右邊又個按鈕add address manually

輸入你的0x6ffe4c ,按下ok


這邊按右鍵選擇你的變數可以看誰在訪問你的變數現在回到你的程式繼續動作

按下後你可以看到你這邊已經有變動了

因為你的程式去訪問你的變數去做cmp現在來往上追蹤

把它紀錄下來,0040156D記住這位置回到

這邊在goto 0040156D 可以看到他跳到這裡

你仔細比對跟組合語言比對一下他把變數rbp-04這位置指向的是你的變數位置他把它移到暫存器eax 然後再cmp eax 1 比對看如果相符這邊我們就可以來做一些變動了
eax比對那邊設為0看會發生什麼事
這邊更改過後再去看你程式碼看會發生什麼可以發現

這邊
只是小小的展示,要如何要繞過遊戲防護呢,你可以進行dll injection
這些注入到目標主程式的記憶體讓目標主程式的記憶體已為他是自己的我們可以自己寫個dll再注入到遊戲裡面,在記憶體修改的方面的話每次開機的話你的記憶體都會不一樣,這樣的話你的dll可以做基址的定位為什麼要做定位呢,每次記憶體都會不一樣,像是你腳色血量,你如果位置都寫死的話你這次寫的外掛可以,位置都寫死位置到下次開機所有的位置你可能要重寫了,所以要做基址的定位
要怎樣用呢比如說你注入到遊戲的dll位置一定是固定的,假如說你這次的遊戲血量是0x1234 ,你注入到遊戲的記憶體位置是0x1000 那你的記憶體修改的位置可以寫為 0x1234-xxxx.dll = 234也就是你的位移量,你這邊的話你的位置就可以xxxx.dll+234當然系統也不會讓你這好破解,也會有一級指針,二級指針,三級指針等等
vc++寫的dll注入器+dll檔_sourcecode_在mega
這邊記憶體修改就差不多了更深入的話可以google
反外掛的原理會對遊戲進行字串的掃描,和對user mod kernel mod層那邊進行函數的攔截,破解反外掛的機制呢你可以選擇寫個驅動還是進行ssdt那邊進行函數的替換這邊太高端無法進行研究。
這些原理只能套在x86 也就是32位元下才有用。
還有另一種的方法就是虛擬機vm在虛擬機下開啟外掛和遊戲,你在外面對vm做修改這是你就可以對反外掛和遊戲上下其手,隨便你怎樣修改了。

Unity_實現2DRPG??

用了一堆Unity 開發2D遊戲


可以用觸控走路喔喔喔那詭異的步伐,是我debug用的

下載點丟到mega惹


Unity_魔術方塊教學軟體

當兵暑假可以完成哪些事情呢



拿起你的鱷魚皮小冊子,開始想辦法把魔術方塊轉成二維陣列,ㄏㄏ抽到密碼通譯兵,教官還以為我要抄密碼出去xd


,加上專題老師的要求魔術方塊教學軟體,老師看到了新聞說什麼日本教授透過手機拍照解魔術方塊,所以他想要做這個專題,還是硬接下來`,幾乎都是都是python呢,我們來用c#硬上吧xd
20141127 Taipei.py - PyCuber 用Python解魔術方塊

新增


修正一些bug,然後基於8355法去解魔術方塊
2.3實作內容
l   如何根據影像讀入魔術方塊
l   如何自動尋找魔術方塊解法
l   3D畫面呈現與動畫
l   把解法分層解法,並希望剛接觸的人也可以輕易把魔術方塊解出來
l   探討並分析,和其他人解法有何不同

三、原理與分析
3.1
讀魔術方塊顏色到電腦
將手上的魔術方塊狀態輸入到APP以便讓APP可以運算解答並用來教學,而魔術方塊顏色的讀入,可使用Unity直接引用OpenCV或者在Android封裝時順便將OpenCV包進去。但因這部份比較繁瑣,所以本專題採用簡單的圖形偵測方式,首先,把圖片進行邊緣化偵測後會得到一個白色外框矩形,(2)左方是取樣魔術方塊如(2)右邊的其中一面,圖上9個點是取樣的像素,用來判讀其顏色,就可取得魔術方塊的四個角落,再依比例就可以得到9塊區域的中心點,在對中心點做顏色的取樣,在背景雜訊不多時效果很好。
2. 色彩辨識
3.2 選擇魔術方塊解法
這邊解法使用台灣人許技江老師所發明,分為8底、3邊、5邊,而最後的5呢是基於工作區特殊的加一減一依序作左上右下或者下左上右,不管做幾次6次底層一定會回復到原先樣子,有這樣特性就可以來更換最後的五角完成魔術方塊。
3.3 自動尋解與教學
本專題的魔術方塊解答方式,以實作許技江老師所發明的8355法,8355法的特點是不用死背公式而是用理解的方式來解出魔術方塊,初學者可以快速上手,且不易忘記。


a.上層十字






b.工作區


c.底層十字
d.五角歸位
3  8355


4.魔術方塊轉換成2維陣列
       

5.魔術方塊向右旋轉2維陣列結果





3.4自動尋解:
(3)8355法的一些情形。(3c)的情況可使用(3b)工作區來進行邊塊和角塊的對調,最後的(3d)使用加一減一的算法來把最後五角歸位。
接下來就是把魔術方塊上各顏色的位置作轉換,成為比較好處理的二維陣列。一個立方空盒攤開後會有六個面,而魔術方塊為一個六面的立方體,亦可以類似地將其六面數位化。(4)為數位化的魔術方塊,其中的05數值分別代表六種顏色。
在對紅色一面如(5)所示,進行90度左右旋轉的時候,可以知道旋轉紅色面的話則會牽動到灰色區塊一併要進行旋轉,到這邊的時候魔術方塊已經可以用來判斷哪一面哪一點的顏色了。      
有了上面這些資訊,在做自動尋解的過程中,就只要先找到目標方塊在哪一面哪一點,然後把依照8355法或者其他解法,將方塊進行90度左右旋轉,把目標方塊轉至定位即可完成自動尋解這功能。





7.小方塊組成大方塊


3.5 3D畫面呈現
           在畫魔術方塊的時候我們採用Unity內建的3D矩形組合成(6)的這麼大的魔術方塊供需要273D矩形,所以只要把用先把位置弄出來,我們再依序把273D矩形放入到相對應位置,再配合3.4自動尋解中所提到的二維陣列就可以畫出一顆完整的魔術方塊。
3.6動畫的呈現
如圖6所示
程式碼去呼叫IEnumerator介面函數時,會先去執行裡面的函數,當遇到yield return 0;則暫時返回呼叫它的原先程式。Start()繼續往下做其他事情,Nowplay()則會繼續執行直到沒遇到yield return 0;則結束 IEnumerator ,將用這些函數來做畫面更新及延遲。
方塊旋轉
哪一面共包含哪九塊小方塊,這些在程式中已經配置好,如果我要對第0面進行旋轉,則第0面所牽動的九塊小方塊將會一併跟著旋轉,在旋轉的過程中,會呼叫旋轉函數並計算九個小方塊旋轉的角度,然後利用上面函數StartCoroutine來進行畫面的延遲及更新,將角度慢慢增加或減少,以呈現動畫。

Unity 實現一個LoL?

動機!?


玩了這麼久當然來要來實現一下啊
血條
區域網連線
大絕
物體碰撞
DOTA產生怪物
內建怪物自動尋路

看影片



下載點丟到mega惹

C# 實現一個2D RPG引擎?

引擎實作?


靠杯中間走不出來sorry orz

人生第一台GAMEBOY當然是玩神奇寶貝,以前就有想實現了,RPG遊戲製作大師的年代,恩~學以致用我們來實現他吧!
還沒講完,宅男們都暴動拉(也得到C#助教的契機??

大改!


繼上次的神奇寶貝RPG,這期新增的功能礙於神奇寶貝需要跟百分之百模擬畫面,所以畫面要模擬成顯示腳色周圍X軸加+10-10 Y+10-10,以往的是一開始就加載所有地圖,導致整個地圖在繪製多物件的時候會讓程式效率不足,所以腳色移動不再是真正的在FORM裡面移動是固定在中央每次鍵盤按下去只會對針對的XY軸做計算,再來傳送到繪製地圖兩個迴圈進行繪圖,大大提高程式效率,到最後還是達成了這個大改算是把之前的腳色對話、判斷是否面對面、事件等等,所有涉及到座標的都必須更改,此外還新增NPC走路只要載入特定的素材檔,開發者只要4行就可以操縱NPC走路方向,整體來說神奇寶貝RPG就是基於RPG遊戲製作大師工具而啟發的,這個專體寫到後面說是遊戲到不如說是一個RPG遊戲開發引擎,下面會來為各位做一個統整。

1.畫面變動更改物品增加與移除
2.劇情功能設定將配合下面對話功能和戰鬥畫面衍生而出劇情。
3.對話功能增加鎖按鍵(不能移動)
4.戰鬥畫面設計介面新增。
5.碰撞功能分為靜態與動態。
6.新增功能有草叢遇怪物功能,沒抓寵功能因為遊戲畫面大改導致沒有實現。
7.道館也是因為遊戲畫面大改導致沒有實現。
8.捕捉神奇寶貝功能新增
9.可以在功能欄位裡面選擇神奇寶貝並可用來與其他腳色戰鬥

我們來看圖吧!(部落格被砍了,實在懶得再拍影片


主畫面恩~不錯

三層陣列




這意味者照期中的方式來繪圖將會大大增加記憶體和CPU使用率,但如果改用期末的畫面的話將大幅提升效能,也增加了可調螢幕解析度讓遊戲畫面不再受侷限,將可以用來製作迷宮方面,不再是一下子就找到事件的地點了,使得探索大大提升畫面可玩性。


偽2.5D樹木


戰鬥功能新增介面和攻擊爆擊



草叢遭遇野生怪物



捕捉神奇寶貝



NPC對戰系統




rpg.code



Java_battole tetris

又是一次課堂專題


在看到了fb小遊戲,因為課堂專題需要所以來做個小練習
可以單人和雙人對打喔!為什麼沒計分系統? 自己寫拉
單人
雙人

battole tetris.code



Java_message

即時通


相信大家都有用過Yahoo即時通,那時候還有一個漏洞呢,輸入超過很多字元會讓對方斷線
,那麼我們來土炮一個來看看吧!




message.code


Face detection_抓小偷

介紹


如果java client 端如果有偵測到人臉的話會儲存一張圖片到c:\\peoples.png
然後偵測到的人臉大於1的話則會將嫌疑人的照片儲存下來並發送一張圖片到
指定ip並告知可能有人在你家
Server 端如果有將會一直開著持續監聽

環境設定


Eclipse
Android studio
Opencv 2.49 or 48


Javacv 1.2建置


下載好javacv後建立一個eclipse 專案 jse就可以了這邊要來做監控的client,記得把這些函示庫引入

Opencv 建置


64位元就選x64,32位元就選x86

Face detection.code