源碼遠端破解
⑴ jenkins部署源代碼到遠程伺服器
jenkins要想在遠程伺服器執行命令,發送文件等操作,必然要處理jenkins與遠程機的免交互問題。
下面如何讓jenkins與目標主機實現免交互。
系統管理-- 插件安裝--搜索ssh --安裝 Publish Over SSH
安裝完成後,在jenkins端生成秘鑰對(公鑰id_rsa.pub 私鑰id_rsa)
輸入一次密碼,以後就免密了。輸入完可以用ssh 登陸試一下。
我們以最簡單的一個例子來演示,部署一個Html頁面到遠程伺服器的nginx網站目錄下,實現頁面上線。
首先,剛才jenkins配置ssh插件,注意填寫遠程伺服器信息的那裡的remote directory這個地方指的發送到遠程伺服器的哪個目錄下。
在job配置中
上圖的配置就是,將jenkins上的項目文件init.html發送到遠端主機192.168.1.112的/var/www/html下
保存,退出。
遠端主機的nginx配置:
點擊構建。
結果:部署成功
例子比較簡單,後期會更新java的部署過程。
⑵ 如何反編譯木馬程序
木馬程序是一種程序,它能提供一些有用的,或是僅僅令人感興趣的功能。但是它還有用戶所不知道的其他功能,例如在你不了解的情況下拷貝文件或竊取你的密碼。
RFC1244(Request for Comments:1244)中是這樣描述木馬的:「木馬程序是一種程序,它能提供一些有用的,或是僅僅令人感興趣的功能。但是它還有用戶所不知道的其他功能,例如在你不了解的情況下拷貝文件或竊取你的密碼。」隨著互聯網的迅速發展,木馬的攻擊、危害性越來越大。木馬實質上是一個程序,必須運行後才能工作,所以會在進程表、注冊表中留下蛛絲馬跡,我們可以通過「查、堵、殺」將它「緝拿歸案」。
查
1.檢查系統進程
大部分木馬運行後會顯示在進程管理器中,所以對系統進程列表進行分析和過濾,可以發現可疑程序。特別是利用與正常進程的CPU資源佔用率和句柄數的比較,發現異常現象。
2.檢查注冊表、ini文件和服務
木馬為了能夠在開機後自動運行,往往在注冊表如下選項中添加註冊表項:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
木馬亦可在Win.ini和System.ini的「run=」、「load=」、「shell=」後面載入,如果在這些選項後面載入程序是你不認識的,就有可能是木馬。木馬最慣用的伎倆就是把「Explorer」變成自己的程序名,只需稍稍改「Explorer」的字母「l」改為數字「1」,或者把其中的「o」改為數字「0」,這些改變如果不仔細觀察是很難被發現。
在Windwos NT/2000中,木馬會將自己作為服務添加到系統中,甚至隨機替換系統沒有啟動的服務程序來實現自動載入,檢測時要對操作系統的常規服務有所了解。
3.檢查開放埠
遠程式控制制型木馬以及輸出Shell型的木馬,大都會在系統中監聽某個埠,接收從控制端發來的命令,並執行。通過檢查系統上開啟的一些「奇怪」的埠,從而發現木馬的蹤跡。在命令行中輸入Netstat na,可以清楚地看到系統打開的埠和連接。也可從www.foundstone.com下載Fport軟體,運行該軟體後,可以知道打開埠的進程名,進程號和程序的路徑,這樣為查找「木馬」提供了方便之門。
4.監視網路通訊
對於一些利用ICMP數據通訊的木馬,被控端沒有打開任何監聽埠,無需反向連接,不會建立連接,採用第三種方法檢查開放埠的方法就行不通。可以關閉所有網路行為的進程,然後打開Sniffer軟體進行監聽,如此時仍有大量的數據,則基本可以確定後台正運行著木馬。
堵
1.堵住控制通路
如果你的網路連接處於禁用狀態後或取消撥號連接,反復啟動、打開窗口等不正常現象消失,那麼可以判斷你的電腦中了木馬。通過禁用網路連接或拔掉網線,就可以完全避免遠端計算機通過網路對你的控制。當然,亦可以通過防火牆關閉或過濾UDP、TCP、ICMP埠。
2.殺掉可疑進程
如通過Pslist查看可疑進程,用Pskill殺掉可疑進程後,如果計算機正常,說明這個可疑進程通過網路被遠端控制,從而使計算機不正常。
殺
1.手工刪除
對於一些可疑文件,不能立即刪除,有可能由於誤刪系統文件而使計算機不能正常工作。首先備份可疑文件和注冊表,接著用Ultraedit32編輯器查看文件首部信息,通過可疑文件裡面的明文字元對木馬有一個大致了解。當然高手們還可以通過W32Dasm等專用反編譯軟體對可疑文件進行靜態分析,查看文件的導入函數列表和數據段部分,初步了解程序的主要功能。最後,刪除木馬文件及注冊表中的鍵值。
2.軟體殺毒
由於木馬編寫技術的不斷進步,很多木馬有了自我保護機制。普通用戶最好通過專業的殺毒軟體如瑞星、金山毒霸等軟體進行殺毒,對於殺毒軟體,一定要及時更新,並通過病毒公告及時了解新木馬的預防和查殺絕技,或者通過下載專用的殺毒軟體進行殺毒(如近期的沖擊波病毒各大公司都開發了查殺工具)。
⑶ 伺服器程序源代碼分析之二:php-fpm
php作為排名top2 互聯網開發工具,非常流行,可以參考:中國最大的25個網站採用技術選型方案
php這個名稱實際上有兩層含義
直接定義:
php-fpm從php5.3.3開始已經進入到php源代碼包,之前是作為patch存在的
很少人會去讀php本身源代碼,我6年前解決php內存泄露問題的時候做了些研究,最近再查看了一番,發現php的開發者很有誠意,這是一款非常出色的伺服器軟體,支持如下
在linux伺服器上,如果不設置 events.mechanism ,那麼默認就是採用epoll,所以
php-fpm的IO模型&並發處理能力和nginx是完全一致
nginx以性能卓越聞名,大部分程序員都認為php效率低下,看了源代碼,才知道這是傳奇啊
在高性能部署的時候,大家往往會針對性的優化nginx 。我自己之前部署php程序也犯了錯誤,8G內存的server,php-fpm的max children都會設置128+,現在看來太多了,參考nginx的部署:
php-fpm配置為 3倍 cpu core number就可以了
php-fpm穩定性比nginx稍差 這是因為php-fpm內置了一個php解析器,php-fpm進程就和php程序捆綁了,如果php腳本寫得不好,有死循環或者阻塞在某個遠端資源上,會拖累載入它的php-fpm進程
而nginx和後端應用伺服器之間通過網路連接,可以設置timeout,不容易堵死的
php-fpm的fastcgi是短連接 我原以為是長連接的,看了代碼才知道也是短連接,處理一個request就關閉掉
php-fpm介面採用fastcgi 非常遺憾,php-fpm和fastcgi完全綁定了,無法獨立使用 。只能部署在支持http-fcgi協議轉換程序背後(nginx)。其實可以考慮在php-fpm代碼包裡面引入http協議支持,這樣php-fpm可以獨立運行,讓nodejs無話可說
php-fpm等同於OpenResty OpenResty是一個國人開發的nginx模塊,就是在nginx引入lua解釋器. 實際上,它和php-fpm的唯一差別就是一個採用php語法,一個用lua,所以OpenResty要作為nginx增強包使用還可以,要選擇它作為一個主要編程工具,沒有任何必要
從架構上來說,php-fpm已經做到最好,超過大多數 python部署工具,我再也不黑它了