版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第三十章-P-CODE-Part2(本章CrackMe支持庫(kù)MSVBVM50.DLL)本章我們繼續(xù)討論P(yáng)-CODE。以下是我從JBDUC的教程里收集的一些操作碼:6c ILdRf 將指定操作數(shù)壓入堆棧1b LitStr5 將字符串壓入堆棧fb Lead0 30 EqStr 比較兩個(gè)字符串(與Lead0配合使用)2f FFree1Str 釋放內(nèi)存空間1a FFree1Ad 釋放內(nèi)存空間0f VCallAd 通過(guò)虛擬機(jī)運(yùn)行操作碼1c BranchF 條件跳轉(zhuǎn)指令,如果棧頂?shù)闹禐閒alse則跳轉(zhuǎn)(相當(dāng)于匯編指令JNE/JNZ)1d BranchT 條件跳轉(zhuǎn)指令,如果棧頂?shù)闹禐閠rue則跳轉(zhuǎn)(相當(dāng)于
2、匯編指令JE/JZ)1e Branch 無(wú)條件跳轉(zhuǎn)(嘿嘿,相當(dāng)于匯編指令JMP)fc Lead1 c8 End 終止程序(與Lead1配合使用)f3 LitI2 將立即數(shù)壓入堆棧f4 LitI2_Byte 將指定數(shù)據(jù)轉(zhuǎn)化為字節(jié)整型并壓入堆棧70 FStrI2 將棧頂?shù)腤ORD型元素保存到內(nèi)存單元中,然后執(zhí)行出棧操作6b FLdI2 將WORD型參數(shù)壓入堆棧a9 AddI2 棧頂兩個(gè)WORD型元素相加,相加的結(jié)果置于棧頂ad SubI2 棧頂兩個(gè)WORD型元素相減,相減的結(jié)果置于棧頂b1 MulI2 棧頂兩個(gè)WORD型元素相乘,相乘的結(jié)果置于棧頂好了,以上列出了一些操作碼以及相應(yīng)的含義,這里還有
3、一份<<P-Code_OPCODES>>文檔,這份文檔是關(guān)于VB P-CODE虛擬機(jī)的說(shuō)明文檔,其闡述了操作碼的解析原理(但是并不全,嘿嘿)。如果大家遇到了不熟悉的操作碼的話,可以參考一下該文檔,可能有幫助。好了,這里我們首先來(lái)講解clave2這個(gè)CrackMe,將其加載到ExDec看看都顯示些什么。這里我們可以看到開始于401CC0處,這里不能完全依然于ExDec,因?yàn)橛袝r(shí)候它的分析不怎么準(zhǔn)確,所以我們還是像上一章節(jié)一樣手工來(lái)定位第一個(gè)操作碼吧。我們定位到入口點(diǎn)上面的API函數(shù)MethCallEngine。這里我們給JMP MethCallEngine這一行設(shè)置一個(gè)斷
4、點(diǎn),為了防止還有其他地方調(diào)用MethCallEngine,我們?cè)贘MP MethCallEngine這條指令上面單擊鼠標(biāo)右鍵選擇-Follow定位到MethCallEngine的入口點(diǎn),在入口點(diǎn)處也設(shè)置一個(gè)斷點(diǎn)。我們運(yùn)行起來(lái)看看會(huì)不會(huì)觸發(fā)剛剛設(shè)置的斷點(diǎn)。我們可以看到彈出了注冊(cè)窗口,但是并沒有觸發(fā)我們?cè)O(shè)置的斷點(diǎn),說(shuō)明在執(zhí)行P-CODE之前注冊(cè)窗口就產(chǎn)生了,可能有的程序執(zhí)行PCODE在窗口產(chǎn)生之前,而我們這里剛好相反,其實(shí)這無(wú)關(guān)緊要,現(xiàn)在我們隨便輸入一個(gè)錯(cuò)誤的用戶名和序列號(hào)。接著我們單擊Registrar(注冊(cè))按鈕,就會(huì)斷在JMP MethCallEngine這一行,好,現(xiàn)在單擊工具欄中的M按鈕
5、打開區(qū)段列表窗口定位到代碼段(這里我們使用原版的OD,不用那個(gè)Patch過(guò)的OD,那個(gè)Patch過(guò)的OD對(duì)P-CODE應(yīng)用程序并不奏效),對(duì)代碼段設(shè)置內(nèi)存訪問(wèn)斷點(diǎn)。接下來(lái)我們多運(yùn)行幾次,直到斷在讀取第一個(gè)操作碼的指令處為止。這里我們可以看到ESI指向了第一個(gè)操作碼,并且該操作碼將被保存到AL中。和ExDec中顯示的第一個(gè)操作碼是位于401CC0處的04一致。我們應(yīng)該還記得上一章介紹過(guò)的04這個(gè)操作碼是將后面緊跟的參數(shù)壓入堆棧,這里該參數(shù)是EBP - 8C。下面我們來(lái)看看P-CODE的說(shuō)明文檔中操作碼是如何解析的,如下圖:04 567B 0B8E 2 1 2 就是將一個(gè)參數(shù)壓入堆棧, 0B8E指
6、的是對(duì)應(yīng)參數(shù)的RVA(相對(duì)虛擬地址), 第一個(gè)2指的是所有參數(shù)所占的總字節(jié)數(shù),接下來(lái)的一個(gè)1指的是參數(shù)的個(gè)數(shù),最后的一個(gè)2指的是單個(gè)參數(shù)所占的字節(jié)數(shù),由于這個(gè)例子只有一個(gè)參數(shù),所以最后只有一個(gè)2,如果具有多個(gè)參數(shù)的話,后面會(huì)依次顯示各個(gè)參數(shù)所占的字節(jié)數(shù)。我們這里的第一個(gè)操作碼所執(zhí)行的操作即PUSH EBP - 8C,繼續(xù)看下面的操作碼,但是本章我們不跟上一章那樣從頭到尾跟蹤每個(gè)操作碼,這里我們只跟蹤關(guān)鍵的操作碼。我們看到這兩處VCALLHresult,都是讀取文本框中用戶輸入的信息,第一個(gè)有可能是讀取用戶輸入的用戶名,第二個(gè)可能是讀取用戶輸入的序列號(hào),我們直接給401D4C地址處的操作碼設(shè)置內(nèi)
7、存訪問(wèn)斷點(diǎn)。接著我們運(yùn)行起來(lái)。斷了下來(lái),繼續(xù)往下跟蹤直到讀取下一個(gè)操作碼的指令為止。這里我們跟到了讀取下一個(gè)操作碼的指令處。可以看到局部變量local_008C即EBP - 8C,我這里EBP - 8C等于12F454,一起來(lái)看看該地址處保存了什么。在堆棧窗口中看到12F454地址處保存了我們輸入的用戶名。至此我們就定位到輸入的用戶名,接下來(lái)就是要定位輸入的序列號(hào),同理,給下圖中的操作碼設(shè)置內(nèi)存訪問(wèn)斷點(diǎn)。運(yùn)行起來(lái),馬上就斷在讀取該操作碼的指令。跟前面一樣,跟蹤到讀取下一個(gè)操作碼的指令處為止。我們來(lái)看看輸入的序列號(hào)是不是也被保存到了局部變量中。我們會(huì)發(fā)現(xiàn)跟之前一樣輸入的序列號(hào)也被保存到了EBP
8、- 8C中。至此我們又定位到了輸入的序列號(hào),我們不必跟蹤每個(gè)操作碼,只需要對(duì)關(guān)鍵的操作碼設(shè)置內(nèi)存訪問(wèn)斷點(diǎn),上一章,我們跟蹤了每個(gè)操作碼的執(zhí)行過(guò)程,讓大家可以更好的理解P-CODE的運(yùn)行機(jī)制,本章的話,我們就沒有像上一章那樣贅述了,下面的跟蹤步驟還是像剛剛那樣定位關(guān)鍵點(diǎn)即可。這里貌似在進(jìn)行比較,接著釋放局部變量的內(nèi)存空間,然后根據(jù)剛剛比較的結(jié)果來(lái)決定是跳轉(zhuǎn)到401E59處調(diào)用rtcMsgBox彈出正確序列號(hào)提示框還是直接往下執(zhí)行彈出錯(cuò)誤序列號(hào)的提示框。根據(jù)ExDec顯示的內(nèi)容來(lái)看這里很可能是進(jìn)行序列號(hào)的比較,然后根據(jù)比較的結(jié)果來(lái)決定是條件跳轉(zhuǎn)到提示序列號(hào)正確的消息框處還是提示序列號(hào)錯(cuò)誤的消息框,
9、所以我們可以給下圖中的兩個(gè)操作碼設(shè)置內(nèi)存訪問(wèn)斷點(diǎn),看看會(huì)發(fā)生什么。運(yùn)行起來(lái)。斷在了讀取第一個(gè)操作碼的指令處,繼續(xù)往下跟蹤直到讀取第二個(gè)操作碼的指令處為止,然后看看執(zhí)行些什么操作。第二個(gè)操作碼是EF。接著查看一下操作碼列表中關(guān)于FB EF的說(shuō)明(見附件中的OPCODES.TXT)。操作碼列表中并沒有對(duì)FB EF進(jìn)行相應(yīng)的解釋,但是根據(jù)ExDec中顯示的內(nèi)容ConcatVar字面意思可以理解為拼接變量值,一起來(lái)看一看ExDec中的描述。可以看到兩個(gè)局部變量將進(jìn)行拼接,其中一個(gè)是EBP - 9C即字符串“CRK”,另一個(gè)是EBP - 018C,接下來(lái)我們分別定位到這兩個(gè)變量。第一個(gè)變量是EBP -
10、9C,在我機(jī)器上為12F444。(PS:這里需要說(shuō)明一下,這里的變量類型屬于variant型,也是就傳說(shuō)中的變體類型,相信學(xué)習(xí)過(guò)COM組件的童鞋一定不會(huì)陌生,VB中的variant類型屬于一種結(jié)構(gòu)體,該結(jié)構(gòu)體的前兩個(gè)字節(jié)表示類型,后面有3個(gè)WORD是保留的,接下來(lái)才是其真正的值。關(guān)于variant的類型定義這里大家可以看jjnet大哥在以前的帖子中給出的一段定義,見附錄),前兩個(gè)字節(jié)為8,表示類型8(b_str),也就是字符串類型,其實(shí)際指向的字符串首地址為12F44C。接下來(lái)我們看下一個(gè)變量EBP - 18C,也就是12F354,屬于類型3(I4),即占4字節(jié)的整型數(shù),其真實(shí)值為2EA。我們
11、跟進(jìn)這個(gè)操作碼中。這里是讀取參數(shù)并保存到EDI中。我們可以看到保存到EDI中參數(shù)值為12F434。接著我們到了_vbaVarCat這個(gè)API函數(shù)的調(diào)用處,堆棧中顯示該函數(shù)有三個(gè)參數(shù)。我們來(lái)看看每個(gè)參數(shù)的具體情況。這是第一個(gè)參數(shù)。這是第二個(gè)參數(shù),表示一個(gè)整型數(shù),數(shù)值為02EA(十六進(jìn)制)。接著是第三個(gè)參數(shù),表示一個(gè)字符串,其實(shí)際指向的字符串首地址為401748,即CRK。好了,現(xiàn)在我們已經(jīng)弄清楚了這幾個(gè)參數(shù)的情況,接下來(lái)我們跟進(jìn)到_vbaVarCat這個(gè)API函數(shù)內(nèi)部,看到其內(nèi)部調(diào)用的一些其他的API函數(shù),就會(huì)明白拼接過(guò)程是如何實(shí)現(xiàn)的了。好,這里我們跟到了_vbaStrCat的調(diào)用處,從堆棧中可
12、以看出將要進(jìn)行拼接的兩個(gè)字符串分別是CRK和746,而之前的那個(gè)數(shù)值02EA呢?02EA(十六進(jìn)制)對(duì)應(yīng)的十進(jìn)制數(shù)值如下:正好是764,所以_vbaVarCat這個(gè)函數(shù)首先會(huì)將數(shù)字型變量轉(zhuǎn)化為了字符串(PS:十六進(jìn)制數(shù)值轉(zhuǎn)化為十進(jìn)制數(shù)值),我們跟蹤到該函數(shù)的RET處。我們可以看到兩個(gè)變量被拼接到了一起。和前面一樣,我們繼續(xù)往下跟直到下一個(gè)操作碼讀取第一個(gè)參數(shù)為止。這里我們可以看到第一個(gè)參數(shù)的前兩個(gè)字節(jié)值為8,表示類型8(b_str),也就是字符串類型,其指向的字符串首地址為15D88C,這里我們可以看到就是剛剛拼接的字符串。好了,接下來(lái)馬上要進(jìn)行序列號(hào)的比較了,我們往下跟直到讀取下一個(gè)操作碼為
13、止。這里是一個(gè)雙操作碼操作,繼續(xù)往下跟直到讀取FB40的第二個(gè)操作碼為止。這里操作碼列表中也沒有FB 40解釋,我們繼續(xù)跟蹤看看該操作碼都干了些什么,嘿嘿。這里我們可以看到該操作碼快結(jié)束的地方有一個(gè)CALL指令,我們來(lái)看看這個(gè)CALL的參數(shù)。第一個(gè)參數(shù)為零,第二個(gè)參數(shù)為12F434,在數(shù)據(jù)窗口中定位到12F434。前兩個(gè)字節(jié)值為8,表示類型8(b_str),即字符串類型,其實(shí)際指向的字符串首地址為15D88C。接下來(lái)我們?cè)跀?shù)據(jù)窗口中定位到另一個(gè)參數(shù)。前兩個(gè)字節(jié)為8008,表示組合類型8000 | 8(VT_RESERVED | VT_BSTR),即字符串型和保留類型的組合,實(shí)際指向的字符串首地
14、址為15CA94,也就是輸入的序列號(hào)的首地址。這個(gè)CALL,OD中沒有解析其函數(shù)名稱,我猜測(cè)可能是比較以上兩個(gè)字符串。我們?cè)谶@個(gè)CALL這里設(shè)置一個(gè)斷點(diǎn),接著按F8單步執(zhí)行這個(gè)CALL。可以看到EAX的結(jié)果為FFFFFFFF(PS:這里作者描述有誤,該函數(shù)的結(jié)果是保存在EAX中,而并非堆棧中),很可能說(shuō)明剛剛比較的兩個(gè)字符串不相等,這里我們直接輸入正確的序列號(hào),接著按注冊(cè)按鈕看看會(huì)不會(huì)斷在剛剛設(shè)置的這個(gè)斷點(diǎn)處。單擊Registrar按鈕。斷了下來(lái),我們直接按F8鍵執(zhí)行這個(gè)CALL。我們可以看到比較的結(jié)果為零(PS:這里這個(gè)函數(shù)的返回值是保存在EAX中,并非棧頂,作者描述有誤,現(xiàn)已更正),說(shuō)明兩
15、個(gè)字符串相等。正如大家所看到的,我們沒有必要從頭到尾把整個(gè)程序跟一遍,我們只需要觀察一下有沒有什么關(guān)鍵的操作碼,直接跟關(guān)鍵的操作碼就能夠輕松的找到正確的序列號(hào)。下面是該CrackMe的詳細(xì)的操作碼注釋清單:401CC0: 04 FLdRfVar local_008C401CC3: 21 FLdPrThis ;SR = stack2401CC4: 0f VCallAd text ;獲取窗口句柄401CC7: 19 FStAdFunc local_0088401CCA: 08 FLdPr local_0088401CCD: 0d VCallHresult get_ipropTEXTEDIT ;讀取
16、文本框中的內(nèi)容401CD2: 6c ILdRf local_008C ;讀取到的文本401CD5: 1b LitStr: & ;將字符串壓入堆棧401CD8: Lead0/30 EqStr ;比較兩個(gè)字符串401CDA: 2f FFree1Str local_008C 401CDD: 1a FFree1Ad local_0088401CE0: 1c BranchF: 401CE6 ;如果不相等則跳轉(zhuǎn)401CE3: 1e Branch: 401e8c ;無(wú)條件跳轉(zhuǎn)401CE6: 04 FLdRfVar local_008C401CE9: 21 FLdPrThis 401CEA: 0f V
17、CallAd text ;獲取窗口句柄401CED: 19 FStAdFunc local_0088401CF0: 08 FLdPr local_0088401CF3: 0d VCallHresult get_ipropTEXTEDIT ;讀取文本框中的內(nèi)容401CF8: 6c ILdRf local_008C ;讀取到的文本401CFB: 4a FnLenStr 401CFC: f5 LitI4: 0x6 6 (.) ;將占4個(gè)字節(jié)的立即數(shù)壓入堆棧401D01: d1 LtI4 ;是否小于(?)401D02: 2f FFree1Str local_008C401D05: 1a FFree1A
18、d local_0088401D08: 1c BranchF: 401D3F ;如果不成立則跳轉(zhuǎn)(>=6)401D0B: 27 LitVar_Missing 401D0E: 27 LitVar_Missing 401D11: 3a LitVarStr: ( local_00BC ) P-Code401D16: 4e FStVarCopyObj local_00CC401D19: 04 FLdRfVar local_00CC401D1C: f5 LitI4: 0x40 64 (.)401D21: 3a LitVarStr: ( local_009C ) Minimum 6 characte
19、rs401D26: 4e FStVarCopyObj local_00AC401D29: 04 FLdRfVar local_00AC401D2C: 0a ImpAdCallFPR4: _rtcMsgBox401D31: 36 FFreeVar local_00AC local_00CC local_00EC local_010C 401D3C: 1e Branch: 401e8c ;如果小于6個(gè)字符則跳轉(zhuǎn)401D3F: 04 FLdRfVar local_008C401D42: 21 FLdPrThis 401D43: 0f VCallAd text401D46: 19 FStAdFunc
20、local_0088401D49: 08 FLdPr local_0088401D4C: 0d VCallHresult get_ipropTEXTEDIT ;讀取文本框中的內(nèi)容401D51: 3e FLdZeroAd local_008C ;讀取到的文本401D54: 46 CVarStr local_00AC401D57: 04 FLdRfVar local_00CC401D5A: 0a ImpAdCallFPR4: _rtcLowerCaseVar ;轉(zhuǎn)化為小寫字母401D5F: 04 FLdRfVar local_00CC401D62: 04 FLdRfVar local_00EC40
21、1D65: 0a ImpAdCallFPR4: _rtcTrimVar 401D6A: 04 FLdRfVar local_00EC401D6D: Lead1/f6 FStVar local_011C401D71: 1a FFree1Ad local_0088401D74: 36 FFreeVar local_00AC local_00CC 401D7B: 04 FLdRfVar local_011C401D7E: Lead0/eb FnLenVar 401D82: Lead1/f6 FStVar local_012C401D86: 28 LitVarI2: ( local_00BC ) 0x
22、1 (1)401D8B: 04 FLdRfVar local_013C401D8E: 04 FLdRfVar local_012C401D91: Lead3/68 ForVar: (when done) 401DE0 ; FOR i=1 to m 開始循環(huán)401D97: 28 LitVarI2: ( local_00AC ) 0x1 (1)401D9C: 04 FLdRfVar local_013C401D9F: Lead1/22 CI4Var 401DA1: 04 FLdRfVar local_011C401DA4: 04 FLdRfVar local_00CC401DA7: 0a ImpA
23、dCallFPR4: _rtcMidCharVar ;截取字符串的部分字符 401DAC: 04 FLdRfVar local_00CC ;.用戶名401DAF: Lead2/fe CStrVarVal local_008C401DB3: 0b ImpAdCallI2 _rtcAnsiValueBstr ;取字符的十六進(jìn)制值401DB8: 44 CVarI2 local_00BC401DBB: Lead1/f6 FStVar local_016C401DBF: 2f FFree1Str local_008C401DC2: 36 FFreeVar local_00AC local_00CC 40
24、1DC9: 04 FLdRfVar local_017C401DCC: 04 FLdRfVar local_016C401DCF: Lead0/94 AddVar local_00AC401DD3: Lead1/f6 FStVar local_017C401DD7: 04 FLdRfVar local_013C ;設(shè)置循環(huán)變量401DDA: Lead3/7e NextStepVar: (continue) 401D97 ;循環(huán)401DE0: 04 FLdRfVar local_017C401DE3: 04 FLdRfVar local_012C401DE6: Lead0/94 AddVar l
25、ocal_00AC401DEA: Lead1/f6 FStVar local_018C401DEE: 04 FLdRfVar local_008C401DF1: 21 FLdPrThis 401DF2: 0f VCallAd text401DF5: 19 FStAdFunc local_0088401DF8: 08 FLdPr local_0088401DFB: 0d VCallHresult get_ipropTEXTEDIT ;讀取文本框中的內(nèi)容401E00: 3e FLdZeroAd local_008C ;序列號(hào)401E03: 46 CVarStr local_00CC401E06:
26、5d HardType 401E07: 3a LitVarStr: ( local_009C ) CRK401E0C: 04 FLdRfVar local_018C401E0F: Lead0/ef ConcatVar 401E13: Lead0/40 NeVarBool 401E15: 1a FFree1Ad local_0088401E18: 36 FFreeVar local_00CC local_00AC 401E1F: 1c BranchF: 401E59401E22: 27 LitVar_Missing 401E25: 27 LitVar_Missing 401E28: 3a Lit
27、VarStr: ( local_00BC ) P-Code401E2D: 4e FStVarCopyObj local_00CC401E30: 04 FLdRfVar local_00CC401E33: f5 LitI4: 0x10 16 (.)401E38: 3a LitVarStr: ( local_009C ) Key nonValid!401E3D: 4e FStVarCopyObj local_00AC401E40: 04 FLdRfVar local_00AC401E43: 0a ImpAdCallFPR4: _rtcMsgBox401E48: 36 FFreeVar local_
28、00AC local_00CC local_00EC local_010C 401E53: 1e Branch: 401e8c401E56: 1e Branch: 401e8c401E59: 27 LitVar_Missing 401E5C: 27 LitVar_Missing 401E5F: 3a LitVarStr: ( local_00BC ) P-Code401E64: 4e FStVarCopyObj local_00CC401E67: 04 FLdRfVar local_00CC401E6A: f5 LitI4: 0x30 48 (.0)401E6F: 3a LitVarStr:
29、( local_009C ) Key Correct!401E74: 4e FStVarCopyObj local_00AC401E77: 04 FLdRfVar local_00AC401E7A: 0a ImpAdCallFPR4: _rtcMsgBox401E7F: 36 FFreeVar local_00AC local_00CC local_00EC local_010C 401E8A: Lead1/c8 End 401E8C: 13 ExitProcHresult 好了,那么這個(gè)CrackMe我們就搞定了.現(xiàn)在大家應(yīng)該知道了如何用OllyDbg來(lái)調(diào)試P-CODE應(yīng)用程序了吧,不像以前,WKT可能調(diào)試P-CODE程序很方便,但是現(xiàn)在很多P-CO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中培訓(xùn)部對(duì)家長(zhǎng)的總結(jié)
- 中考數(shù)學(xué)二輪復(fù)習(xí)專項(xiàng)1~17題對(duì)點(diǎn)提分訓(xùn)練(二)課件
- 數(shù)控車削加工技術(shù) 課件 項(xiàng)目一 數(shù)控車削工藝基礎(chǔ)
- 1.2 太陽(yáng)對(duì)地球的影響(分層練習(xí))高一地理同步高效課堂(人教版2019必修第一冊(cè))
- 廣東省惠州市博羅縣華僑中學(xué)2024-2025學(xué)年高二上學(xué)期同步檢測(cè)生物學(xué)試題(含答案)
- 2024-2025學(xué)年九年級(jí)上學(xué)期期中考試歷史試題 - 副本
- 2024年山東省淄博市中考化學(xué)試題卷(含答案解析)
- 審計(jì)基礎(chǔ)理論知識(shí)單選題100道及答案解析
- 2024年反洗錢基礎(chǔ)知識(shí)答題(試題及答案)
- 高中物理第四章電磁感應(yīng)6互感和自感課件新人教版選修3-
- 英文文獻(xiàn)及翻譯-Problems-of-incentive-mechanism-in-Chinas-small-an-medium-sized-enterprises
- 乳化工藝操作員培訓(xùn)資料完全
- 物業(yè)公示范文簡(jiǎn)潔(共11篇)
- 企業(yè)落實(shí)食品安全主體責(zé)任的練習(xí)題及答案2023年,食品安全主體責(zé)任的練習(xí)題
- 客運(yùn)索道建設(shè)項(xiàng)目評(píng)價(jià)報(bào)告
- 半導(dǎo)體工藝原理-硅襯底材料制備工藝(貴州大學(xué))概要
- A-Fable-For-Tomorrow明天的寓言課件
- 一年級(jí)上冊(cè)語(yǔ)文課件-看圖寫話 寫好一句話 人教部編版
- GB/T 41782.1-2022物聯(lián)網(wǎng)系統(tǒng)互操作性第1部分:框架
- GB/T 6170-20001型六角螺母
- GB/T 31288-2014鐵尾礦砂
評(píng)論
0/150
提交評(píng)論