Suche senden
Hochladen
Learn python 2 - Real World Case
•
1 gefällt mir
•
465 views
Chia-Hao Tsai
Folgen
Python Class 2 - A basic real world case for python newbie
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 47
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
cmd injection
cmd injection
hackstuff
調試器原理與架構
調試器原理與架構
hackstuff
Maker - WiFi AP
Maker - WiFi AP
Chia-Hao Tsai
Learn Python in 30 min - 4
Learn Python in 30 min - 4
Chia-Hao Tsai
Learn python 1
Learn python 1
Chia-Hao Tsai
Rootkit 102 - Kernel-Based Rootkit
Rootkit 102 - Kernel-Based Rootkit
Chia-Hao Tsai
初心者 Git 上手攻略
初心者 Git 上手攻略
Lucien Lee
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Angel Boy
Empfohlen
cmd injection
cmd injection
hackstuff
調試器原理與架構
調試器原理與架構
hackstuff
Maker - WiFi AP
Maker - WiFi AP
Chia-Hao Tsai
Learn Python in 30 min - 4
Learn Python in 30 min - 4
Chia-Hao Tsai
Learn python 1
Learn python 1
Chia-Hao Tsai
Rootkit 102 - Kernel-Based Rootkit
Rootkit 102 - Kernel-Based Rootkit
Chia-Hao Tsai
初心者 Git 上手攻略
初心者 Git 上手攻略
Lucien Lee
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Angel Boy
Linux File system
Linux File system
Kenny (netman)
Binary exploitation - AIS3
Binary exploitation - AIS3
Angel Boy
Win dbg入门
Win dbg入门
晓锋 陈
Windbg入门
Windbg入门
晓锋 陈
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Dahui Feng
從 REPL 到 IDE
從 REPL 到 IDE
Justin Lin
Interact 操作消費者教學範例
Interact 操作消費者教學範例
turtleknight
[students AI workshop] Pytorch
[students AI workshop] Pytorch
Tzu-Wei Huang
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
Will Huang
Git raiders of junior
Git raiders of junior
Kevin Chen
与Python一路走来
与Python一路走来
leejd
CH10:輸入輸出
CH10:輸入輸出
Justin Lin
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw
Kai-Yuan Cheng
嵌入式平台移植技巧概說
嵌入式平台移植技巧概說
Joseph Lu
Learn python in 30 min - 3
Learn python in 30 min - 3
Chia-Hao Tsai
軟體組裝心得分享
軟體組裝心得分享
Wen Liao
Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)
slantsixgames
1. Python起步走
1. Python起步走
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
[2019.05] HST - RegEx 101 ~ 1001
[2019.05] HST - RegEx 101 ~ 1001
Chia-Hao Tsai
[2019.02.16] hst - orm
[2019.02.16] hst - orm
Chia-Hao Tsai
Weitere ähnliche Inhalte
Ähnlich wie Learn python 2 - Real World Case
Linux File system
Linux File system
Kenny (netman)
Binary exploitation - AIS3
Binary exploitation - AIS3
Angel Boy
Win dbg入门
Win dbg入门
晓锋 陈
Windbg入门
Windbg入门
晓锋 陈
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Dahui Feng
從 REPL 到 IDE
從 REPL 到 IDE
Justin Lin
Interact 操作消費者教學範例
Interact 操作消費者教學範例
turtleknight
[students AI workshop] Pytorch
[students AI workshop] Pytorch
Tzu-Wei Huang
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
Will Huang
Git raiders of junior
Git raiders of junior
Kevin Chen
与Python一路走来
与Python一路走来
leejd
CH10:輸入輸出
CH10:輸入輸出
Justin Lin
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw
Kai-Yuan Cheng
嵌入式平台移植技巧概說
嵌入式平台移植技巧概說
Joseph Lu
Learn python in 30 min - 3
Learn python in 30 min - 3
Chia-Hao Tsai
軟體組裝心得分享
軟體組裝心得分享
Wen Liao
Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)
slantsixgames
1. Python起步走
1. Python起步走
Justin Lin
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
Ähnlich wie Learn python 2 - Real World Case
(20)
Linux File system
Linux File system
Binary exploitation - AIS3
Binary exploitation - AIS3
Win dbg入门
Win dbg入门
Windbg入门
Windbg入门
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
從 REPL 到 IDE
從 REPL 到 IDE
Interact 操作消費者教學範例
Interact 操作消費者教學範例
[students AI workshop] Pytorch
[students AI workshop] Pytorch
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
Git raiders of junior
Git raiders of junior
与Python一路走来
与Python一路走来
CH10:輸入輸出
CH10:輸入輸出
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw
嵌入式平台移植技巧概說
嵌入式平台移植技巧概說
Learn python in 30 min - 3
Learn python in 30 min - 3
軟體組裝心得分享
軟體組裝心得分享
Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)
1. Python起步走
1. Python起步走
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Mehr von Chia-Hao Tsai
[2019.05] HST - RegEx 101 ~ 1001
[2019.05] HST - RegEx 101 ~ 1001
Chia-Hao Tsai
[2019.02.16] hst - orm
[2019.02.16] hst - orm
Chia-Hao Tsai
[2019.01.12] hst iptables 101 to 301
[2019.01.12] hst iptables 101 to 301
Chia-Hao Tsai
[2018.12.15] hst python object 102
[2018.12.15] hst python object 102
Chia-Hao Tsai
[2018.11.16] Python Object 101
[2018.11.16] Python Object 101
Chia-Hao Tsai
[2017.03.18] hst binary training part 1
[2017.03.18] hst binary training part 1
Chia-Hao Tsai
Rootkit 101 - 2nd Edition
Rootkit 101 - 2nd Edition
Chia-Hao Tsai
ELF 101
ELF 101
Chia-Hao Tsai
HoneyCon 2014
HoneyCon 2014
Chia-Hao Tsai
Passwd crack introduction
Passwd crack introduction
Chia-Hao Tsai
Security coding c and c++ ch8(2)
Security coding c and c++ ch8(2)
Chia-Hao Tsai
Security coding c and c++ ch8 (1)
Security coding c and c++ ch8 (1)
Chia-Hao Tsai
Build web server
Build web server
Chia-Hao Tsai
Rootkit tw(0224)
Rootkit tw(0224)
Chia-Hao Tsai
Mehr von Chia-Hao Tsai
(14)
[2019.05] HST - RegEx 101 ~ 1001
[2019.05] HST - RegEx 101 ~ 1001
[2019.02.16] hst - orm
[2019.02.16] hst - orm
[2019.01.12] hst iptables 101 to 301
[2019.01.12] hst iptables 101 to 301
[2018.12.15] hst python object 102
[2018.12.15] hst python object 102
[2018.11.16] Python Object 101
[2018.11.16] Python Object 101
[2017.03.18] hst binary training part 1
[2017.03.18] hst binary training part 1
Rootkit 101 - 2nd Edition
Rootkit 101 - 2nd Edition
ELF 101
ELF 101
HoneyCon 2014
HoneyCon 2014
Passwd crack introduction
Passwd crack introduction
Security coding c and c++ ch8(2)
Security coding c and c++ ch8(2)
Security coding c and c++ ch8 (1)
Security coding c and c++ ch8 (1)
Build web server
Build web server
Rootkit tw(0224)
Rootkit tw(0224)
Learn python 2 - Real World Case
1.
Learn Python in
30 min - 2 cmj 1
2.
2
3.
真實的世界 • 你需要會: • 複雜的操作邏輯 •
很有機會讀/寫檔案 • 還可能執行外部指令 • 或許還來個操作系統 3
4.
真實的世界 • 你需要會: • 複雜的操作邏輯 •
很有機會讀/寫檔案 • 還可能執行外部指令 • 或許還來個操作系統 下次會提到! 4
5.
來點會用到的狀況∼ 5
6.
1. 跑你要的程式 (e.g.
測試某個功能) 1. 控制系統,執行某個邏輯 2. 回傳結果 2. 記錄結果 1. 決定測試記錄的格式,開檔案 2. 記錄結果,關檔案 6
7.
• 來點真實的 case
:確定版號 • 思考一下:取得系統/程式版本 • 思考一下:記錄當下的版本 7
8.
• 來點真實的 case
:確定版號 • 思考一下:取得系統/程式版本 • 執行外部指令:uname -a • 思考一下:記錄當下的版本 8
9.
• 來點真實的 case
:確定版號 • 思考一下:取得系統/程式版本 • 執行外部指令:uname -a • 思考一下:記錄當下的版本 • 處理字串,萃取版本資訊 9
10.
執行外部指令:需要外部函式庫 10
11.
11
12.
• import os •
引用外部函式庫 • os 函式庫提供的所有功能,現在可以用了∼ • 理論上,可以用 popen 執行所有外部指令 12
13.
• 根據不同的平台,當然會得到不同的結果 • uname
是平台相關 (POSIX-Like command) • -a 表示顯示所有資訊 • 你需要處理這個字串 13
14.
14
15.
• 字串處理常用的 • split
- 分割 • find - 找第一個子字串的起始位子 • count - 尋找子字串出現的次數 • join - 將多個字串合成一個 15
16.
這些都比不上... 16
17.
• 字串/串列的基本操作 • LIST[idx]
- 第 idx 個元素 • LIST[-idx] - 反向第 idx 個元素 • LIST[Start:End] - 從 Start 到 End-1 的子XX • LIST[S:E:Step] - 從 S 到 E-1 每 Step 的子XX 17
18.
18
19.
Q:誰會看著程式,一邊跑一邊記錄哪個步驟錯誤 19
20.
記在檔案不是很棒嗎 20
21.
• 如果可以把所有測試結果記錄下來 • 完整的測試結果 •
只有沒有成功的測試 • 測試失敗的詳細步驟 • 這樣不是很棒嗎∼ 21
22.
• 如果可以把所有測試結果記錄下來 • 完整的測試結果 •
只有沒有成功的測試 • 測試失敗的詳細步驟 • 這樣不是很棒嗎∼ • 還可以跟隔壁的 泡茶聊天 討論公事 22
23.
23
24.
• 簡單一點:要不讀檔、要不寫檔 • 看你
open 帶的參數:預設是讀檔 • 根據你開檔的方式:要不 read、要不 write • 死都要記得關檔 24
25.
• 簡單一點:要不讀檔、要不寫檔 • 看你
open 帶的參數:預設是讀檔 • 根據你開檔的方式:要不 read、要不 write • 死都要記得關檔:我會忘記怎麼辦! 25
26.
26
27.
• 關鍵字 with •
把開檔的 fd 放在 as 之後 • 跟 function 一樣有 scope • 在 scope 結束後幫你自動關檔 27
28.
所以合併兩個 case 28
29.
29
30.
回到類別 30
31.
• 如果把一切變成類別/函式庫 • 你只需要拼命的加額外的邏輯 •
不需要管 • 流程紀錄 • 執行參數 31
32.
套用到一開始的例子∼ 32
33.
• 設計一個框架 • 執行不同的測試邏輯,紀錄測試結果 •
根據測試邏輯,執行不同的參數 • 需要增加測試 == 增加一個新的 method 33
34.
框架 34
35.
35 決定測試項⽬目
36.
36 執⾏行:紀錄
37.
測試邏輯 37
38.
38 單項測試
39.
39 多項測試
40.
40 控制測試項⽬目
41.
41 抽象的測試邏輯
42.
看 log 的時間 42
43.
不免俗的,回家作業 43
44.
回家作業 • 熟讀 string
可以用的技巧可以幫你處理字串 • 替換所有特定字元 • 我不要第3~5行 • 每一行開頭都幫我加上 # • … etc 44
45.
處理 ps 指令 •
寫一個完整的程式,可以用 Python 執行 • 最後的結果輸出成檔案:result • 有多少 非 root 身份 的 process • 最大 PID 的 process 名稱 • 如果 result 已經存在 • 把舊的 result 變成 result.old • 原本的 result.old 就 忘了 刪了它吧 45
46.
進階:互動程式 • 簡單的計算機程式 • 接受外面
User 輸入得值,送進 python eval 裡 • e.g. User 輸入 1+2 你就執行 eval(“1+2”) • 如果 User 亂打,你需要處理例外狀況 • 1/0 => 告訴他:你數學沒學好 • a+b => 告訴他:這不是數學運算 46
47.
Thanks for your
attention~ 47
Jetzt herunterladen