主頁 > 後端開發 > 逆向so檔案除錯工具ida基礎知識點

逆向so檔案除錯工具ida基礎知識點

2020-09-24 20:00:52 後端開發

1.界面介紹

https://www.freebuf.com/column/157939.html

2.IDA常用快捷鍵

切換文本視圖與圖表視圖

空格鍵

回傳上一個操作地址

ESC

搜索地址和符號

G

對符號進行重命名

N

常規注釋

'冒號鍵

可重復注釋

分號鍵

添加標簽

Alt+M

查看標簽

Ctrl+M

查看段的資訊

Ctrl+S

查看交叉應用

X

查看偽代碼

F5

搜索文本

Alt+T

搜索十六進

Alt+B

3.命令快捷鍵


F2:下斷點 
F3:打開程式
F4:運行到當前游標處(可應用在跳出 循壞)
F7:單步步入(進函式)
F8:單步 步過
F9;運行
F10:打開反匯編選項選單快捷鍵 
F12:暫時停止
 
Ctrl+F2:重新開始
Art+F2:結束跟蹤
Shift+F2:打開附加選項視窗
Shift+F4:打開條件對話窗 
Shift+F7:與F7相同,但是如果被除錯程式發生例外而中止,除錯器會首先嘗試步入被除錯程式指定的例外處理
Ctrl+F7:自動步入,在所有的函式呼叫中一條一條地執行命令,斷點或例外時,自動 停止
Shift+F8與F8相同,但是如果被除錯程式發生例外而中止,除錯器會首先嘗試步過被除錯程式指定的例外處理
Ctrl+F8:自動步過,一條一條的執行命令,程式到達斷點,或者發生例外時,自動步過程序都會停止
Shift+F9:與F9相同,但是如果被除錯程式發生例外而中止,除錯器會首先嘗試執行被除錯程式指定的例外處理
Ctrl+F9 :執行直到回傳,跟蹤程式直到遇到回傳,在此期間不進入子函式也不更新CPU資料,因為程式是一條一條命令執行的,所以速度可能會慢一些,按Esc鍵,可以停止跟蹤,
Alt+F9:執行直到回傳到用戶代碼段,跟蹤程式直到指令所屬于的模塊不在系統目錄中,在此期間不進入子函式也不更新CPU資料,按Esc鍵,可以停止跟蹤,
Ctrl+F11:Run跟蹤步入,一條一條執行命令,進入每個子函式呼叫,并把暫存器的資訊加入到Run跟蹤的存盤資料中,Run跟蹤不會同步更新CPU視窗,
Ctrl+F12 :Run跟蹤,步過,一條一條執行命令,但是不進入子函式呼叫,并把暫存器的資訊加入到Run跟蹤的存盤資料中,Run跟蹤不會同步更新CPU視窗,
 
Art+C:快速回到主界面
Alt+B:顯示斷點視窗
Alt+E:顯示模塊視窗
Art+L:顯示記錄視窗
Alt+M:顯示記憶體視窗 
Alt+O:顯示除錯選項視窗
Alt+K:顯示呼叫堆疊
 
Ctrl+E:編輯機器碼
Ctrl+G:輸入跟隨地址
Ctrl+N:查找名稱標志,選擇你要下斷的內容 
Ctrl+S:打開查找命令次序視窗
Ctrl+P:顯示補丁視窗
Ctrl+F9:回傳到跟蹤 
Ctrl+F8:自動步進掃描,按F12可停止
Ctrl+F7:同上,功能略有不同
Ctrl+F6:回到OL主視窗

4.命令

CALC :判斷運算式
WATCH :添加監視運算式
AT / FOLLOW:(Disassemble at address)在地址進行反匯編
ORIG :(Disassemble at EIP )反匯編于 EIP
DUMP :(Dump at address )在地址轉存
DA :(Dump as disassembly)轉存為反匯編代碼
DB :(Dump in hex byte format )轉存在十六進制位元組格式
DC :(Dump in ASCII format )轉存在 ASCII 格式
DD :(Dump in stack format )轉存在堆疊格式
DU :(Dump in UNICODE format )轉存在 UNICODE 格式
DW :(Dump in hex word format )轉存在十六進制字詞格式
STK :(Go to address in stack )前往堆疊中的地址
AS + 地址 + 字串 :(Assemble at address )在地址進行匯編
L + 地址 + 字串 :(Label at address )在地址進行標號
C + 地址 + 字串 :(Comment at address )在地址進行注釋
BP :(Break with condition )使用條件中斷
BPX :(Break on all calls )中斷在全部呼叫
BPD :(Delete break on all calls )清除位于全部呼叫的斷點
BC :(Delete breakpoint )清除斷點
MR :(Memory breakpt on access )記憶體斷點于訪問時
MW :(Memory breakpt on write )記憶體斷點于寫入時
MD :(Remove memory breakpoint )清除記憶體斷點
HR :(HW break on access )硬體中斷在訪問
HW :(HW break on write )硬體中斷在寫入
HE :(HW break on execution )硬體中斷在執行
HD :(Remove HW breakpoint )清除硬體斷點
STOP :(Pause execution )暫停執行 
RUN :(Run program )運行程式 
GE :(Run and pass exception )運行和通過例外
SI :(Step into )步入
SO :(Step over )步過
TI :(Trace in till address )跟蹤進入直到地址
TO :(Trace over till address)跟蹤步過直到地址
TC :(Trace in till condition)跟蹤進入直到條件
TOC :(Trace over till condition )跟蹤步過直到條件
TR :(Till return)直到回傳
TU :(Till user code )直到用戶代碼
LOG :(View Log window )查看記錄視窗
MOD :(View Modules window )查看模塊視窗
MEM :(View Memory window )查看記憶體視窗
CPU :(View CPU window )查看 CPU 視窗
CS :(View Call Stack )查看 Call 堆疊
BRK :(View Breakpoints window )查看斷點視窗
HELP :(Help on API function )API 函式的幫助
DASM :(Disassemble immediate opcode )反匯編直接的機器碼
FR :(Find reference to selected command/address)查找參考到選定的命令/地址
AC :(Analyse code )分析代碼
SN :(Search for Name(label) in current module )在當前模塊中搜索名稱(標號)

5.二進制命令

參考https://blog.csdn.net/qq_36982160/article/details/82950848

簡單傳送指令

指令 中文名 格式 解釋 備注
MOV 傳送指令 MOV DEST,SRC DEST<=SRC
XCHG 交換指令 XCHG OPER1,OPER2 把運算元oper1的內容與運算元oper2的內容交換 oper1和oper2可以是通用暫存器或存盤單元,但不能同時是操作單元,也不能是立即數,

簡單加減指令

指令 中文名 格式 解釋 備注
ADD 加法指令 ADD DEST,SRC DEST<=DEST SRC 兩數相加
SUB 減法指令 SUB DEST,SRC DEST<=DEST-SRC 兩數相減
INC 加1指令 INC DEST DEST<=DEST 1
DEC 減1指令 DEC DEST DEST<=DEST-1
NEG 取補指令 NEG OPRD OPRD=0-OPRD 對運算元取補(相反數)

狀態標志

標志 中文名 解釋
CF(carry flag) 進位標志 主要反映算術運算是否產生進位或借位,若產生,則CF=1,否則CF=0
ZF 零標志 反映運算結果是否為0
SF(sign flag) 符號標志 根據運算結果的最高位,若最高位為1則SF為1,否則為0,反映了有符號數運算結果的正負(0正1負)
OF(overflow flag) 溢位標志 反映有符號數運算結果是否產生溢位,是置1,否置0
PF(parity flag) 奇偶標志 偶數置1奇數置0
AF 輔助進位標志

狀態標志操作指令

指令 中文名 格式 解釋
CLC(clear carry flag) 清進位標志指令 CLC 使進位標志CF為0
STC(set carry flag) 置進位標志指令 STC 使進位標志CF為1
CMC(complement carry flag) 進位標志取反指令 CMC 使進位標志CF取反
LAHF(load status flags into AH register) 獲取狀態標志操作指令 LAHF 把位于標志暫存器低端的5個狀態標志位(p26圖2.3)資訊同時送到暫存器AH的對應位
SAHF(store AH into Flags) 設定狀態標志操作指令 SAHF 對標志暫存器中的低8位產生影響,使得狀態標志位SF、ZF、AF、PF和CF分別成為來自暫存器AH中對應位的值,但保留位(位1、位3、位5)不受影響

帶進位加減指令

指令 中文名 格式 解釋 備注
ADC(add with carry) 帶進位加法指令 ADC DEST,SRC DEST<=DEST SRC CF 與add指令不同之處是要再加上進位標志cf的值
SBB(substraction with borrow) 帶借位減法 SBB DEST,SRC DEST<=DEST-(SRC CF) 與sub指令不同之處是要再減上借位標志cf的值

取有效地址指令

指令 中文名 格式 解釋 備注
LEA(load effective address) 取有效地址指令 LEA REC,OPRD 把運算元oprd的有效地址傳送到運算元rec,源運算元oprd必須是一個存盤器運算元,目的運算元rec必須是一個16位或32位的通用暫存器 與mov指令的區別:mov:移動地址中的值lea:將地址進行移動

堆疊和堆疊操作

指令 中文名 格式 解釋 備注
PUSH 進堆疊指令 PUSH SRC 把源運算元src壓入堆疊 源運算元src可以是32位通用暫存器、16位通用暫存器和段暫存器,也可以是雙字存盤單元或者字符存盤單元,還可以是立即數
POP 出堆疊指令 POP DEST 從堆疊頂彈出一個雙字或字資料到目的運算元 如果目的運算元是雙字的,那么就從堆疊頂彈出一個雙字資料,否則,從堆疊頂彈出一個字資料,出堆疊至少彈出一個字(16位)
PUSHA 16位通用暫存器全進堆疊指令 PUSHA 將所有8個16位通用暫存器的內容壓入堆疊 壓入順序是AX CX DX BX SP BP SI DI,然后對戰指標暫存器SP的值減16,所以SP進堆疊的內容是PUSHA指令執行之前的值
POPA 16位通用暫存器全出堆疊指令 POPA 以PUSHA相反的順序從堆疊中彈出內容,從而恢復PUSHA之前的暫存器狀態 SP的值不是由堆疊彈出的,而是通過增加16來恢復
PUSHAD 32位通用暫存器全進堆疊指令 PUSHAD 將所有8個32位通用暫存器的內容壓入堆疊 壓入順序是EAX ECX EDX EBX ESP EBP ESI EDI,然后對戰指標暫存器SP的值減32,所以SP進堆疊的內容是PUSHAD指令執行之前的值
POPAD 32位通用暫存器全出堆疊指令 POPAD 以PUSHAD相反的順序從堆疊中彈出內容,從而恢復PUSHAD之前的暫存器狀態 ESP的值不是由堆疊彈出的,而是通過增加32來恢復

程序呼叫和回傳指令

指令 中文名 格式 解釋 備注
CALL 程序呼叫指令 CALL LABEL 段內直接呼叫LABEL 與jmp的區別在于call指令會在呼叫label之前保存回傳地址(call 中return之后主程式還可以繼續執行,jmp 當label執行完畢后不能回傳主程式繼續執行)
RET 段內程序回傳指令 RET 使子程式結束,繼續執行主程式

算術邏輯運算指令

指令 中文名
MUL 無符號數乘法指令
IMUL 有符號數乘法指令
IMUL DEST,SRC 有符號數乘法指令
IMUL DEST,SRC1,SRC2 有符號數乘法指令
DIV 無符號數除法指令
IDIV OPRD 有符號數除法指令

符號拓展指令

指令 中文名 格式 解釋
CBW 位元組轉化為字指令 CBW 把暫存器AL中的值符號拓展到暫存器AH
CWD 字轉化為雙字指令 CWD 把暫存器AX中的值符號拓展到暫存器DX
CDQ 雙字轉化為四字指令 CDQ 把暫存器EAX中的值符號拓展到EDX
CWDE 字轉化為雙字指令 CWDE 把AX中的值符號拓展到EAX的高16位

拓展傳送指令

指令 中文名 格式 解釋 備注
MOVSX 符號拓展傳送指令 MOVSX DEST,SRC 把源運算元SRC符號拓展后送至目的運算元DEST src可以是通用暫存器或者存盤單元,但是dest只能是通用暫存器(零拓展傳送指令不會改變源運算元,也不影響標志暫存器的狀態)
MOVZX MOVZX DEST,SRC 把源運算元SRC零拓展后送至目的運算元DEST 零拓展傳送指令不會改變源運算元,也不影響標志暫存器的狀態

邏輯運算指令

指令 中文名 格式 解釋 備注
NOT 否運算指令 NOT OPRD 把運算元OPRD按位取反,然后送回OPRD
AND 與運算指令 AND DEST,SRC 把兩個運算元進行與運算之后結果送回DEST 同1得1,否則得0
OR 或運算指令 OR DEST,SRC 把兩個運算元進行或運算之后結果送回DEST 同0得0,否則得1
XOR 異或運算 XOR DEST,SRC 把兩個運算元進行異或運算之后結果送回DEST 相同得0不同得1
TEST 測驗指令 TEST DEST,SRC 與AND指令類似,將各位相與,但是結果不送回DEST,僅影響狀態位標志,指令執行后,ZF、PF、SF反映運算結果,CF和OF被清零 通常用于檢測某些位是否為1,但又不希望改變運算元的值

移位指令

一般移位指令

指令 中文名 格式 解釋 備注
SAL 算術左移 SAL OPRD,count 把運算元oprd左移count位,右邊補0 與shl指令一樣 通過截取count的低5位,實際的移位數被限于0到31之間,
SHL 邏輯左移 SHL OPRD,count 把運算元oprd左移count位,右邊補0 與sal指令一樣 通過截取count的低5位,實際的移位數被限于0到31之間,
SAR 算術右移 SAR OPRD,count 把運算元oprd右移count位,同時每右移一位,左邊補符號位,移出的最低位進入標志位CF 通過截取count的低5位,實際的移位數被限于0到31之間,
SHR 邏輯右移 SHR OPRD,count 把運算元oprd右移count位,左邊補0,移出的最低位進入標志位CF 通過截取count的低5位,實際的移位數被限于0到31之間,

回圈移位指令

指令 中文名 格式 解釋 備注
ROL 左回圈移位指令 ROL OPRD,count 通過截取count的低5位,實際的移位數被限于0到31之間,
ROR 右回圈移位指令 ROR OPRD,count 通過截取count的低5位,實際的移位數被限于0到31之間,
RCL 帶進位左回圈移位 RCL OPRD,count 相當于CF在最高位參與回圈移位 大回圈左移 通過截取count的低5位,實際的移位數被限于0到31之間,
RCR 帶進位右回圈移位 RCR OPRD,count 相當于CF在最高位參與回圈移位 大回圈右移 通過截取count的低5位,實際的移位數被限于0到31之間,

回圈指令

指令 中文名 格式 解釋 備注
LOOP 計數回圈指令 LOOP LABEL 使ECX的值減1,當ECX的值不為0的時候跳轉至LABEL,否則執行LOOP之后的陳述句
LOOPE 等于回圈指令 LOOPE LABEL 使ECX的值減1,如果結果不等于0并且零標志ZF等于1(表示相等),那么就轉移到LABEL,否則執行LOOPE之后的陳述句
LOOPZ 零回圈指令 LOOPZ LABEL 使ECX的值減1,如果結果不等于0并且零標志ZF等于1(表示相等),那么就轉移到LABEL,否則執行LOOPZ之后的陳述句
LOOPNE 不等于回圈指令 LOOPE LABEL 使ECX的值減1,如果結果不等于0并且零標志ZF等于0(表示不相等),那么就轉移到LABEL,否則執行LOOPNE之后的陳述句
LOOPNZ 非零回圈指令 LOOPNZ LABEL 使ECX的值減1,如果結果不等于0并且零標志ZF等于0(表示不相等),那么9就轉移到LABEL,否則執行LOOPNZ之后的陳述句
JECXZ 計數轉移指令 JECXZ LABEL 當暫存器ECX的值為0時轉移到LABEL,否則順序執行 通常在回圈開始之前使用該指令,所以回圈次數為0時,就可以跳過回圈體

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

標籤:其他

上一篇:資料結構,結果不對,大佬幫忙解決一下

下一篇:不要以為Bug寫的好就是好程式員,其實這只占不到15%!

標籤雲
其他(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)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more