一個網友求助的軟體的演算法分析------explzh好象是壓縮與解壓縮軟體
標 題:一個網友求助的軟體的演算法分析------explzh好象是壓縮與解壓縮軟體
發信人:txm123
時 間: 2003年9月23日 11:24
詳細資訊:
一個網友求助的軟體的演算法分析------explzh好象是壓縮與解壓縮軟體
說明:這個軟體的破解是一個網友給我發了一封EMAIL,求助這個軟體的破解,原信如下:
發件人: "Chris Wahl" <smalltalk-80@tom.com>
收件人: 隱去我的郵件地址 抄送: (無)
傳送時間: 2003-09-17 15:00:56 優先順序: 普通
標題: help me to understand Float Computing
Hello , would you like to help me ?,
I am learning crack .
the progie I want to crack is explzh, a file compress software
like WinRAR.
I use OllyDbg 1.09 too, but I found there are lots of floating
calculation in the code. I am confused.
fortunately , I found your article http://www.jxlb.com/cgi-bin/view.cgi?forum=2&topic=2155
and I think I can get some help from you.
the progie's site is , the updated version has only Japanese version.
I hope you will not reject
http://village.infoweb.ne.jp/~fwhv5283/mirror.htm
regrards.
Chris
這是一封英文信件,我的英語水平太菜,看了很久才明白,昨天晚上看到這封信,軟體也發到了我的郵箱,
所以就下來看一看,這是一個日本人做的解壓縮軟體,軟體介面的文字我又不認得,找了半天才找到註冊處,弄
清了演算法,就貼出來看一看,註冊錯誤有資訊,但反彙編找不到,所以只能動態除錯找關鍵點。下載地址在:
http://village.infoweb.ne.jp/~fwhv5283/mirror.htm這也是一個日本網站。
軟體介紹:好象這是一個壓縮與解壓縮的軟體,我自己也不太清楚。
破解作者:
yzez[DFCG]
破解工具:
OLLYDBG1.09
破解過程:
1、OLLYDBG1.09載入要破的程式,點選選單欄上的外掛,選命令列,然後在出現的資訊框裡輸入:bpx hmemcpy,
按Enter鍵,又會出現一個呼叫的CALL的框 ,在所有的CALL上都設定好斷點,然後按F9,反覆按,直至出現註冊
資訊框,輸入註冊資訊,使用者名稱:yzez[DFCG],Email:yzez@163.com,試驗碼:12345678-87654321,點確定,程式
中斷在004B9781處,程式碼如下,說明也在下面:
004B9774 |. CALL EXPLZH.004B96EC
004B9779 |. CMP DWORD PTR DS:[EDI], 0
004B977C |. MOV ESI, EAX
004B977E |. JE SHORT EXPLZH.004B97A8
004B9780 |. PUSH ESI
004B9781 |. CALL DWORD PTR DS:[<&USER32.GetWindow>****此CALL設斷,F9執行程式,輸入任意註冊資訊
004B9787 |. LEA ECX, DWORD PTR DS:[EAX+1]************點確定,程式被斷,按F8走,這裡連續按F8走
004B978A |. PUSH ECX**********************************會在中斷處迴圈兩次,不要管,繼續按F8,直
004B978B |. MOV ECX, [ARG.3]*************************到00403088處,才到核心段
004B978E |. PUSH EAX
********************************省略************************************************
004B97B3 |> POP EDI
004B97B4 |. POP ESI
004B97B5 |. POP EBP
004B97B6 . RETN 0C
***********************程式核心段的程式碼如下!***************************************
00403088 . MOV EAX, DWORD PTR DS:[503C30]*****進入核心處,我們停在這裡!
0040308D . MOV DWORD PTR SS:[ESP+10], EAX
00403091 . MOV EAX, DWORD PTR SS:[EBP+5C]
00403094 . MOV DWORD PTR SS:[ESP+22C], 0
0040309F . MOV ECX, DWORD PTR DS:[EAX-8]
004030A2 . TEST ECX, ECX
*************************************省略N行程式碼!*********************************************
004031C6 . E8 2DEE0A00 CALL EXPLZH.004B1FF8
004031CB . 8D4C24 14 LEA ECX, DWORD PTR SS:[ESP+14]
004031CF . C68424 2C0200>MOV BYTE PTR SS:[ESP+22C], 0
004031D7 . E8 2FED0A00 CALL EXPLZH.004B1F0B
004031DC . 8B4424 18 MOV EAX, DWORD PTR SS:[ESP+18]
004031E0 . 8B5424 1C MOV EDX, DWORD PTR SS:[ESP+1C]
004031E4 . 8B1B MOV EBX, DWORD PTR DS:[EBX]
004031E6 . 2BF0 SUB ESI, EAX
004031E8 . 1BFA SBB EDI, EDX
004031EA . 81EE D78A6E3C SUB ESI, 3C6E8AD7
004031F0 . 53 PUSH EBX
004031F1 . MOV ECX, EXPLZH.0050A328
004031F6 . SBB EDI, 0
004031F9 . CALL EXPLZH.0042AF60**********這裡是關鍵CALL,按F7跟進!
004031FE . TEXT EAX, EAX*****************測試EAX的值,註冊成功EAX的值為1,反之值為0
00403200 . JE SHORT EXPLZH.00403214****相等就跳,跳就失敗
00403202 . PUSH EDI
00403203 . PUSH ESI
00403204 . MOV ECX, EBP
00403206 . CALL EXPLZH.004032B0
0040320B . MOV ECX, EBP
0040320D . CALL EXPLZH.004AE153**********到了這裡我們就是快樂的CRACKER,註冊成功!
00403212 . JMP SHORT EXPLZH.0040327F
00403214 > PUSH 81C7*********************上面不等就會跳到這裡!,向下走幾步,就要你交錢!註冊失敗
00403219 . LEA ECX, DWORD PTR SS:[ESP+14]
0040321D . CALL EXPLZH.004B24CE
00403222 . ECX, DWORD PTR DS:[50A3A0]
00403228 . MOV EDX, DWORD PTR SS:[ESP+10]
0040322C . PUSH 10
0040322E . PUSH ECX
0040322F . JMP SHORT EXPLZH.00403259
00403231 > MOV EAX, DWORD PTR DS:[50A390]
00403236 . LEA EDX, DWORD PTR SS:[ESP+24]
0040323A . PUSH 200
0040323F . PUSH EDX
00403240 . PUSH 80E0*********************** "入力されたレジストコ`ドは" 這是失敗資訊!
**********************************關鍵CALL的程式碼!****************************************
0042AF60 /$ MOV EAX, DWORD PTR FS:[0]****進入關鍵CALL後,我們就在這裡!
0042AF66 |. PUSH -1
0042AF68 |. PUSH EXPLZH.004CEA68
0042AF6D |. PUSH EAX
0042AF6E |. MOV DWORD PTR FS:[0], ESP
0042AF75 |. SUB ESP, 14
0042AF78 |. PUSH EBX
0042AF79 |. PUSH EBP
0042AF7A |. PUSH ESI
0042AF7B |. MOV ESI, DWORD PTR SS:[ESP+30]
0042AF7F |. PUSH EDI
0042AF80 |. MOV EBX, ECX
0042AF82 |. CMP BYTE PTR DS:[ESI], 0
0042AF85 |. JE EXPLZH.0042B101
0042AF8B |. PUSH 0
0042AF8D |. PUSH EXPLZH.004FD278
0042AF92 |. LEA EAX, DWORD PTR SS:[ESP+18]
0042AF96 |. PUSH EXPLZH.004FD290
0042AF9B |. PUSH EAX
0042AF9C |. CALL EXPLZH.004C57E7
0042AFA1 |. MOV EAX, DWORD PTR SS:[ESP+10]
0042AFA5 |. MOV DWORD PTR SS:[ESP+2C], 0
0042AFAD |. MOV ECX, DWORD PTR DS:[EAX-8]
0042AFB0 |. TEST ECX, ECX
0042AFB2 |. JE EXPLZH.0042B0F0
0042AFB8 |. PUSH 0
0042AFBA |. PUSH 0
0042AFBC |. PUSH EAX
0042AFBD |. MOV ECX, EBX
0042AFBF |. CALL EXPLZH.0042B130***************此CALL對使用者名稱進行處理,處理過程是這樣,取使用者名稱各位的
**************ASCII碼值,然後把它們相加,我輸入的使用者名稱是yzez[DFCG],其結果是這樣:79+7A+65+7A+5B+44+46+43+
**************47+5D=39E,結果儲存在EAX中,程式碼就不列了,有興趣自己跟進去看一看!
0042AFC4 |. PUSH ESI***************************輸入的試驗碼入ESI
0042AFC5 |. LEA ECX, DWORD PTR SS:[ESP+14]****儲存使用者名稱運算的結果!
0042AFC9 |. MOV DWORD PTR SS:[ESP+20], EAX
0042AFCD |. MOV DWORD PTR SS:[ESP+24], EDX
0042AFD1 |. CALL EXPLZH.004B2048
0042AFD6 |. PUSH 2D****************************2D入棧,2D是“-”的ASCII碼值,註冊碼中必須有“-”,故
************************註冊碼的形式應是:XXXXXXXX-YYYYYYYY
0042AFD8 |. LEA ECX, DWORD PTR SS:[ESP+14]
0042AFDC |. CALL EXPLZH.004B23B9***************此CALL檢驗註冊碼中是否有“-”,有,就把第一組註冊碼的
*******************位數賦給EAX,沒有EAX賦值為FFFFFFFF(-1)
0042AFE1 |. MOV EBP, EAX**********************第一組註冊碼的位數8移入EBP中
0042AFE3 |. CMP EBP, -1***********************比較EBP是不是-1
0042AFE6 |. JE EXPLZH.0042B0F0***************相等就跳,一跳就送你去睡覺!所以註冊碼中必須有“-”
0042AFEC |. PUSH EBP***************************不跳就往下,位數8入棧!我們繼續往下走!
0042AFED |. LEA ECX, DWORD PTR SS:[ESP+1C]
0042AFF1 |. PUSH 0
0042AFF3 |. PUSH ECX
0042AFF4 |. LEA ECX, DWORD PTR SS:[ESP+1C]
0042AFF8 |. CALL EXPLZH.004AA18B
0042AFFD |. PUSH EXPLZH.0050021C
0042B002 |. LEA EDX, DWORD PTR SS:[ESP+18]
0042B006 |. PUSH EAX
0042B007 |. PUSH EDX
0042B008 |. MOV BYTE PTR SS:[ESP+38], 1
0042B00D |. CALL EXPLZH.004B2154
0042B012 |. PUSH EAX
0042B013 |. LEA ECX, DWORD PTR SS:[ESP+14]
0042B017 |. MOV BYTE PTR SS:[ESP+30], 2
0042B01C |. CALL EXPLZH.004B1FF8
0042B021 |. LEA ECX, DWORD PTR SS:[ESP+14]
0042B025 |. MOV BYTE PTR SS:[ESP+2C], 1
0042B02A |. CALL EXPLZH.004B1F0B
0042B02F |. LEA ECX, DWORD PTR SS:[ESP+18]
0042B033 |. MOV BYTE PTR SS:[ESP+2C], 0
0042B038 |. CALL EXPLZH.004B1F0B
0042B03D |. MOV EAX, DWORD PTR SS:[ESP+10]****把試驗碼的第一組12345678,注意後面加了H,代表是十六進位制值入EAX
0042B041 |. PUSH EAX***********************試驗碼第一組入棧,準備處理
0042B042 |. CALL EXPLZH.00478D80
0042B047 |. MOV ECX, EAX
0042B049 |. CALL EXPLZH.00479060
0042B04E |. MOV ECX, DWORD PTR SS:[ESP+1C]****把使用者名稱計算後的結果入ECX,這裡是39E,開始計算第一組註冊碼!
0042B052 |. MOV ESI, EAX**********************第一組試驗碼12345678移入ESI
0042B054 |. MOV EDI, EDX**********************EDX的值為0,賦EDI的值為0
0042B056 |. MOV EDX, DWORD PTR SS:[ESP+20]****賦EDX的值為0
0042B05A |. SUB EAX, ECX**********************EAX=EAX-ECX=12345678-39E=123452DA
0042B05C |. MOV ECX, EDI**********************EDI的值入ECX
0042B05E |. SBB ECX, EDX**********************ECX=ECX-EDX=0
0042B060 |. SUB EAX, 3C6E8AD7*****************EAX=EAX-3C6E8AD7=123452DA-3C6E8AD7=D5C5C803
0042B065 |. SBB ECX, 0************************ECX=ECX-0=0
0042B068 |. PUSH ECX
0042B069 |. PUSH EAX***************************上述計算後的結果:D5C5C803入棧!
0042B06A |. MOV ECX, EBX
0042B06C |. CALL EXPLZH.0042AE00***************在這裡進行比較,我們按F7進去看一看!比較CALL
0042B071 |. TEST EAX, EAX**********************上面CALL的比較成功,這裡EAX的值為FFFFFFFE,否則EAX的值為0
0042B073 |. MOV DWORD PTR SS:[ESP+1C], EAX****儲存EAX的值
0042B077 |. JE SHORT EXPLZH.0042B0F0*********相等就跳,一跳就失敗,爆破點1,改成NOP
0042B079 |. CMP EAX, -1***********************與-1比較
0042B07C |. JE SHORT EXPLZH.0042B0F0*********相等就跳,一跳就失敗,此處不必改!
0042B07E |. MOV ECX, DWORD PTR SS:[ESP+34]****試驗碼入ECX,準備取第二組試驗碼
0042B082 |. LEA EDX, DWORD PTR DS:[ECX+EBP+1]*第二組試驗碼所在的地址賦給EDX
0042B086 |. LEA ECX, DWORD PTR SS:[ESP+10]****試驗碼的地址賦給ECX
0042B08A |. PUSH EDX
0042B08B |. CALL EXPLZH.004B2048
0042B090 |. MOV EBP, DWORD PTR SS:[ESP+1C]****FFFFFFFE(-2)入EBP
0042B094 |. MOV EAX, DWORD PTR DS:[EAX]*******第二組的試驗碼的地址給EAX
0042B096 |. CMP EBP, -2***********************比較EBP是不是-2
0042B099 |. JNZ SHORT EXPLZH.0042B0AE*********不相等就跳,跳到下面
0042B09B |. CMP BYTE PTR DS:[EAX], 31*********第二組試驗碼的第一位與31(1)比較
0042B09E |. JNZ SHORT EXPLZH.0042B0AE*********不相等就跳
0042B0A0 |. MOV DL, BYTE PTR DS:[EAX+1]
0042B0A3 |. MOV CL, 34
0042B0A5 |. CMP DL, CL
0042B0A7 |. JNZ SHORT EXPLZH.0042B0AE
0042B0A9 |. CMP BYTE PTR DS:[EAX+2], CL
0042B0AC |. JE SHORT EXPLZH.0042B0E2
0042B0AE |> PUSH EXPLZH.0050021C***************跳到這裡!
0042B0B3 |. LEA ECX, DWORD PTR SS:[ESP+14]
0042B0B7 |. CALL EXPLZH.004B229B
0042B0BC |. MOV EAX, DWORD PTR SS:[ESP+10]
0042B0C0 |. PUSH EAX
0042B0C1 |. CALL EXPLZH.00478D80
0042B0C6 |. MOV ECX, EAX
0042B0C8 |. CALL EXPLZH.00479060
0042B0CD |. SUB ESI, EAX*********************ESI=ESI-EAX=12345678(第一組試驗碼)-
******************************87654321(第二組試驗碼)=8ACF1357
0042B0CF |. MOV ECX, EBX
0042B0D1 |. SBB EDI, EDX
0042B0D3 |. PUSH EDI
0042B0D4 |. PUSH ESI**************************上述計算的值8ACF1357入棧
0042B0D5 |. CALL EXPLZH.0042AE00**************進行第二次比較,呼叫同一個比較CALL
0042B0DA |. TEST EAX, EAX*********************比較的值不相等就賦EAX的值為0
0042B0DC |. JE SHORT EXPLZH.0042B0F0********相等就跳,EAX的值為0就跳,一跳就失敗!不能跳,爆破點2,改JNZ
0042B0DE |. CMP EBP, EAX*********************比較EBP與EAX
0042B0E0 |. JE SHORT EXPLZH.0042B118********相等就跳,跳就成功!爆破點3,改JE為JMP
0042B0E2 |> PUSH -1
0042B0E4 |. PUSH 10
0042B0E6 |. PUSH 81EB
0042B0EB |. CALL EXPLZH.004B9A50
0042B0F0 |> LEA ECX, DWORD PTR SS:[ESP+10]
0042B0F4 |. MOV DWORD PTR SS:[ESP+2C], -1
0042B0FC |. CALL EXPLZH.004B1F0B
0042B101 |> XOR EAX, EAX
0042B103 |> MOV ECX, DWORD PTR SS:[ESP+24]
0042B107 |. POP EDI
0042B108 |. POP ESI
0042B109 |. POP EBP
0042B10A |. POP EBX
0042B10B |. MOV DWORD PTR FS:[0], ECX
0042B112 |. ADD ESP, 20
0042B115 |. RETN 4
0042B118 |> LEA ECX, DWORD PTR SS:[ESP+10]*****跳到這裡!
0042B11C |. MOV DWORD PTR SS:[ESP+2C], -1
0042B124 |. CALL EXPLZH.004B1F0B
0042B129 |. MOV EAX, 1*************************在這裡賦EAX的值為1,這是註冊成功的標誌位
0042B12E .^ JMP SHORT EXPLZH.0042B103
0042B130 /$ PUSH EBX
0042B131 |. PUSH EBP
0042B132 |. MOV EBP, DWORD PTR SS:[ESP+C]
0042B136 |. PUSH ESI
0042B137 |. PUSH EDI
0042B138 |. PUSH EBP
0042B139 |. XOR EDI, EDI ; |
0042B13B |. XOR EBX, EBX ; |
0042B13D |. CALL DWORD PTR DS:[<&KERNEL32.lstrlen>; lstrlenA
0042B143 |. MOV ESI, EAX
0042B145 |. TEST ESI, ESI
0042B147 |. JNZ SHORT EXPLZH.0042B152
0042B149 |. POP EDI
0042B14A |. POP EBP
0042B14C |. XOR EDX, EDX
0042B14E |. POP EBX
0042B14F |. 0C
**********************************比較CALL的程式碼************************************************
0042AE00 /$ MOV EAX, DWORD PTR SS:[ESP+8]****進入比較CALL後我們停在這裡!0入EAX
0042AE04 |. MOV ECX, DWORD PTR SS:[ESP+4]****把上述運算過的值:D5C5C803移入ECX中
0042AE08 |. CMP EAX, 1***********************EAX的值和1比較
0042AE0B |. JG EXPLZH.0042AED0**************如果大於就跳走,不進行後面的比較
0042AE11 |. JL SHORT EXPLZH.0042AE1F********如果小於就跳到下面去進行比較
0042AE13 |. CMP ECX, 6132023A
0042AE19 |. JA EXPLZH.0042AED0
0042AE1F |> CMP ECX, 6132023A****************計算過的值與6132023A比較
0042AE25 |. JNZ SHORT EXPLZH.0042AE30********不相等就跳,跳到下面繼續進行比較!
0042AE27 |. CMP EAX, 1***********************EAX與1比較
0042AE2A |. JE EXPLZH.0042AEC8**************相等就跳!
0042AE30 |> TEST EAX, EAX
0042AE32 |. JG SHORT EXPLZH.0042AE96
0042AE34 |. JL SHORT EXPLZH.0042AE3E********跳到0042AE96
0042AE36 |. CMP ECX, F87A404F
0042AE3C |. JA SHORT EXPLZH.0042AE96
0042AE3E |> CMP ECX, F87A404F****************比較計算的值與F87A404F
0042AE44 |. JNZ SHORT EXPLZH.0042AE4A********不相等就跳,跳到下面!
0042AE46 |. TEST EAX, EAX
0042AE48 |. JE SHORT EXPLZH.0042AE8E
0042AE4A |> CMP ECX, 87A30DE3****************再與87A30DE3比較
0042AE50 |. JNZ SHORT EXPLZH.0042AE56********不相等就跳
0042AE52 |. TEST EAX, EAX
0042AE54 |. JE SHORT EXPLZH.0042AE86
0042AE56 |> CMP ECX, B64FBAC4****************與B64FBAC4比較
0042AE5C |. JNZ SHORT EXPLZH.0042AE62********不相等就跳
0042AE5E |. TEST EAX, EAX
0042AE60 |. JE SHORT EXPLZH.0042AE7E
0042AE62 |> CMP ECX, BD507501****************與BD507501比較
0042AE68 |. JNZ EXPLZH.0042AF4D**************不相等就跳,跳就失敗
0042AE6E |. TEST EAX, EAX*********************測試EAX的值
0042AE70 |. JNZ EXPLZH.0042AF4D**************不相等就跳,跳就失敗
0042AE76 |. MOV EAX, -2**********************到這裡賦EAX的值為FFFFFFFE(-2)
0042AE7B |. RETN 8****************************子程式結束!
2、演算法小結:
註冊碼的形式是:XXXXXXXX-YYYYYYYY
第一組註冊碼減去使用者名稱計算的值再減去3C6E8AD7必須等於BD507501
第一組註冊碼減去第二組註冊碼也必須等於BD507501,所以其演算法如下:
計算用到使用者名稱,使用者名稱計算是這樣,取使用者名稱的各位ASCII碼值相加,設計算的結果是:T。
設第一組註冊碼是S1,S1=T+3C6E8AD7+BD507501
設第二組註冊碼是S2,S2=S1-BD507501
3、驗證演算法:
使用者名稱為:yzez[DFCG]
使用者名稱計算的值:T=79+7A+65+7A+5B+44+46+43+47+5D=39E
第一組註冊碼S1=39E+3C6E8AD7+BD507501=F9BF0376
第二組註冊碼S2=F9BF0376-BD507501=3C6E8E75
所以對應使用者名稱yzez[DFCG]的註冊碼是:F9BF0376-3C6E8E75,輸入進去我們看看,註冊成功了吧!
4、爆破:
點1:0042B077 |. JE改成NOP
點2:0042B0DC |. JE改成JNZ
點3:0042B0E0 |. JE改成JMP
上述修改,在輸入的註冊碼中間必須有“-”,如果任意輸入都成功,還要在0042AFE6 |. JE處改
點4:0042AFE6 |. JE改成NOP或者:JNZ
這樣修改,輸入任意資訊都可成為註冊版。
相關文章
- BetterZip for Mac解壓縮軟體2022-11-16Mac
- 如何把影片壓縮,影片壓縮軟體哪個最好2019-07-24
- RAR Extractor Mac - 解壓縮軟體2021-10-15Mac
- 解壓縮軟體RAR Extractor Mac2021-10-11Mac
- Mac電腦好用的壓縮、解壓軟體都有哪些?2022-03-29Mac
- A-Zippr Pro Mac(解壓縮軟體)2022-02-27Mac
- BetterZip for Mac(經典解壓縮軟體)2021-11-26Mac
- A-Zippr Pro for Mac解壓縮軟體2021-08-17Mac
- FastZip for Mac_Mac解壓軟體_Mac壓縮_Mac解壓工具2023-12-05ASTMac
- 壓縮解壓軟體:解壓專家Oka for Mac中文版2023-04-02Mac
- 強大且易於使用的壓縮和解壓縮軟體:Keka for Mac2023-10-10Mac
- RAR Extractor - The Unarchiver Pro for mac(解壓縮軟體)2021-10-11HiveMac
- RAR Extractor - The Unarchiver Pro for mac解壓縮軟體2021-01-23HiveMac
- 7z——擁有極高壓縮比的開源壓縮軟體2024-11-11
- Linux下的好用的圖片壓縮軟體2018-09-08Linux
- 專業解壓縮軟體 WinZip Pro Mac/Windows2022-08-27MacWindows
- Linux 常用的壓縮與解壓縮命令詳解2021-06-02Linux
- 簡單實用的mac壓縮解壓軟體:iFastZip for Mac中文版2024-01-04MacAST
- Image Optimizer Pro for Mac(影像壓縮軟體)2022-03-21Mac
- Squeezer for Mac(Mac圖片壓縮軟體)2022-09-11Mac
- Linux tar分卷壓縮與解壓縮2020-05-06Linux
- BetterZip 5 for Mac(蘋果專用解壓縮軟體)2021-10-11Mac蘋果
- 壓縮解壓軟體:Keka mac v1.3.4中文版2023-09-19Mac
- 簡單實用的mac壓縮軟體:iZip for Mac2023-05-05Mac
- NET中SharpZipLib 的使用(一)【壓縮與解壓】2018-07-22
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮2022-02-08NginxCSSJSON
- 4款Mac解壓縮軟體,常見且實用2023-10-20Mac
- 解壓縮軟體:iFastZip - Extract RAR&ZIP&7Z for Mac2024-01-04ASTMac
- win10解壓軟體哪個好 win10電腦用什麼解壓軟體好2022-03-16Win10
- 影像體積壓縮工具JPEG Jackal更好的壓縮圖片2020-12-01
- png格式如何壓縮,圖片壓縮工具哪個好2019-04-22
- 【Koa】koa-compress中介軟體的使用-壓縮資料2020-10-17
- linux 高效壓縮工具之xz的壓縮解壓使用2023-01-29Linux
- Linux下的tar壓縮解壓縮命令詳解2018-12-25Linux
- Linux下檔案的壓縮與解壓2018-05-30Linux
- 用Python寫一個帶圖形介面的檔案壓縮軟體2019-03-06Python
- linux下壓縮解壓縮命令2020-07-17Linux
- Linux下如何安裝、壓縮、解壓軟體包?常用命令彙總!2018-12-11Linux
- Linux壓縮解壓2018-05-18Linux