跟蹤aspr殼的pre-dip,解除使用限制
看雪資料發表於2004-06-28
解除aspr殼的使用限制有多種方法,方法之一就是追蹤pre-dip
用od載入程式後按Shift+F9跳過異常,直到出現硬碟指紋
程式碼:
0012FF2C 0012FF34 指標到下一個 SEH 記錄 0012FF30 00CFA898 SE 控制程式碼 0012FF34 0012FF40 指標到下一個 SEH 記錄 0012FF38 00CFB236 SE 控制程式碼 0012FF3C 0012FF90 0012FF40 0012FFE0 指標到下一個 SEH 記錄 0012FF44 00CFB25B SE 控制程式碼 0012FF48 0012FF90 0012FF4C 00CE0000 0012FF50 00B60000 0012FF54 00CFA684 0012FF58 00000000 0012FF5C 00D823DC ASCII "mIjMiACQQJ8=" <<==硬碟指紋 0012FF60 00CE0000 0012FF64 00B60000
以硬碟指紋為第一部分,相對位置如下。
程式碼:
按Shift+F9 註冊名 (第二部分) 按Shift+F9 使用限制 (第三部分) 按Shift+F9 生死轉折 (第四部分)
以下為第三部分
程式碼:
000CFAEBD 58 POP EAX 00CFAEBE 8B15 ECC5CF00 MOV EDX,DWORD PTR DS:[CFC5EC] 00CFAEC4 A1 54C6CF00 MOV EAX,DWORD PTR DS:[CFC654] 00CFAEC9 E8 8A06FFFF CALL 00CEB558 <<==檢測是否過期,對記憶體00CFC5EC區域設定標誌 00CFAECE A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFAED3 8378 10 00 CMP DWORD PTR DS:[EAX+10],0 <<==是否有時間限制 00CFAED7 74 2D JE SHORT 00CFAF06 00CFAED9 A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAEDE 8078 31 00 CMP BYTE PTR DS:[EAX+31],0 00CFAEE2 74 04 JE SHORT 00CFAEE8 00CFAEE4 33C0 XOR EAX,EAX 00CFAEE6 EB 09 JMP SHORT 00CFAEF1 00CFAEE8 A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAEED 0FB740 0C MOVZX EAX,WORD PTR DS:[EAX+C] <<==取限制的時間 00CFAEF1 50 PUSH EAX <<==入棧 00CFAEF2 A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAEF7 0FB740 08 MOVZX EAX,WORD PTR DS:[EAX+8] <<==取剩餘的時間 00CFAEFB 50 PUSH EAX <<==剩餘時間入棧 00CFAEFC A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFAF01 8B40 10 MOV EAX,DWORD PTR DS:[EAX+10] 00CFAF04 FFD0 CALL EAX <<==pre-dip時間限制 00CFAF06 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFAF0B 8378 14 00 CMP DWORD PTR DS:[EAX+14],0 <<==是否有次數限制 00CFAF0F 74 1E JE SHORT 00CFAF2F 00CFAF11 A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAF16 0FB740 12 MOVZX EAX,WORD PTR DS:[EAX+12] 00CFAF1A 50 PUSH EAX 00CFAF1B A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAF20 0FB740 0E MOVZX EAX,WORD PTR DS:[EAX+E] 00CFAF24 50 PUSH EAX 00CFAF25 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFAF2A 8B40 14 MOV EAX,DWORD PTR DS:[EAX+14] 00CFAF2D FFD0 CALL EAX <<==pre-dip次數限制 00CFAF2F A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFAF34 8378 18 00 CMP DWORD PTR DS:[EAX+18],0 00CFAF38 74 57 JE SHORT 00CFAF91
執行00CFAEC9 CALL 00CEB558 執行後00CFDDDC處的記憶體資料
程式碼:
00CFDDDC 00 00 00 00 00 00 00 00 1E 00 37 00 1E 00 00 00 .........7.... 00CFDDEC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00CFDDFC 3C 08 8A 16 0D 9C E2 40 1A 6A 8A 54 CE A2 E2 40 <?.@jT微@ 00CFDE0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00CFDDE4 試用的天數(1E = 30 天)
00CFDDE8 已經使用的天數,如過期改這裡00CFDDE8 = 00CFDDE4
00CFDE0C 是否過期標誌,(00 = 沒有過期,01 = 過期),設定00CFDE0C = 00 00
跟進 00CFAF04 CALL EAX <<==EAX = 0048C6AC
程式碼:
0048C6AC 55 PUSH EBP <<==程式領空 0048C6AD 8BEC MOV EBP,ESP 0048C6AF A1 1C734E00 MOV EAX,DWORD PTR DS:[4E731C] <<==取標誌,這裡是FFFFFFFE 0048C6B4 A3 18734E00 MOV DWORD PTR DS:[4E7318],EAX <<==放入標誌,如沒有殼為0,這兩句較少見。 0048C6B9 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] <<==取時間限制天數 0048C6BC A3 1C734E00 MOV DWORD PTR DS:[4E731C],EAX 0048C6C1 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C] <<==取剩餘天數 0048C6C4 A3 20734E00 MOV DWORD PTR DS:[4E7320],EAX 0048C6C9 5D POP EBP 0048C6CA C2 0800 RETN 8 <<==返回殼 返回殼後按F9到達下一個異常。(第四部分) 00CFAFDF 3100 XOR DWORD PTR DS:[EAX],EAX <<==異常 00CFAFE1 EB 01 JMP SHORT 00CFAFE4 <<==F2設斷點,按Shift+F9斷在此處。 單步跟蹤到 00CFAFEF 58 POP EAX 00CFAFF0 A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFAFF5 8078 30 00 CMP BYTE PTR DS:[EAX+30],0 <<==是否超過時間限制 00CFAFF9 75 0B JNZ SHORT 00CFB006 <<==跳則過期 00CFAFFB A1 ECC5CF00 MOV EAX,DWORD PTR DS:[CFC5EC] 00CFB000 8078 31 00 CMP BYTE PTR DS:[EAX+31],0 00CFB004 74 3C JE SHORT 00CFB042 <<==必須跳 00CFB006 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB00B 8378 24 00 CMP DWORD PTR DS:[EAX+24],0 00CFB00F 74 13 JE SHORT 00CFB024 00CFB011 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB016 8B40 20 MOV EAX,DWORD PTR DS:[EAX+20] 00CFB019 50 PUSH EAX 00CFB01A A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB01F 8B40 24 MOV EAX,DWORD PTR DS:[EAX+24] 00CFB022 FFD0 CALL EAX <<==過期pre-dip,使用工具脫殼,大部分會跳到這裡 00CFB024 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB029 8378 34 00 CMP DWORD PTR DS:[EAX+34],0 00CFB02D 74 31 JE SHORT 00CFB060 00CFB02F 6A 01 PUSH 1 00CFB031 68 E654CE00 PUSH 0CE54E6 00CFB036 832C24 02 SUB DWORD PTR SS:[ESP],2 00CFB03A FF25 7CDBCF00 JMP DWORD PTR DS:[CFDB7C] 00CFB040 EB 1E JMP SHORT 00CFB060 00CFB042 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB047 8378 24 00 CMP DWORD PTR DS:[EAX+24],0 00CFB04B 74 13 JE SHORT 00CFB060 00CFB04D A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB052 8B40 1C MOV EAX,DWORD PTR DS:[EAX+1C] 00CFB055 50 PUSH EAX 00CFB056 A1 1CC7CF00 MOV EAX,DWORD PTR DS:[CFC71C] 00CFB05B 8B40 24 MOV EAX,DWORD PTR DS:[EAX+24] 00CFB05E FFD0 CALL EAX <<==沒有超過限制,跳到此處。 00CFB060 33C9 XOR ECX,ECX 00CFB062 BA 78B2CF00 MOV EDX,0CFB278 跟進00CFB05E CALL EAX 0048C5E0 55 PUSH EBP 0048C5E1 8BEC MOV EBP,ESP 0048C5E3 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 0048C5E6 A3 40AC4E00 MOV DWORD PTR DS:[4EAC40],EAX <<==如果工具脫殼或在之前Dump,需修補此處 0048C5EB 5D POP EBP 0048C5EC C2 0400 RETN 4
使用限制的方法相同,這裡就不再重複
以上為跟蹤pre-dip過程,望對新手有所幫助
感謝Volx的指點。
相關文章
- 研究aspr殼的pre-dip2015-11-15
- 如何使用iPhone限制IP地址跟蹤2022-08-29iPhone
- 模擬跟蹤+修復方法之ACProtect脫殼――完美解除安裝XP V9.122015-11-15
- 如何跟蹤ASProtect外殼加密過的程式? (7千字)2001-04-13加密
- 跟蹤使用者的SQL2011-04-07SQL
- ArtCursors 3.03 ASPR殼軟體脫殼後修整記 (10千字)2015-11-15
- 用ollydbg跟蹤te!lock加殼的軟體
(2千字)2015-11-15
- play.exe linson的仙劍加殼器跟蹤分析2015-11-15
- Oracle 10046跟蹤的使用2015-12-23Oracle
- 幻影使用的反跟蹤技術2003-06-21
- 用OD對Aspr加殼程式的手動脫殼及修復 (7千字)2015-11-15
- 用ollydbg跟蹤asproctect1.2加殼的軟體
(1千字)2015-11-15
- aspr脫殼總結(部分適用於其他殼保護) (3千字)2001-09-14
- 使用sqltrace跟蹤session執行的sql2009-03-31SQLSession
- 夢幻Ollydbg ―― 淺談 ACProtect V1.09 Pro
的反跟蹤And脫殼2015-11-15
- Oracle 跟蹤全部使用者2015-06-26Oracle
- oracle 跟蹤其他使用者2015-06-26Oracle
- SQL跟蹤工具和TKPROF使用2013-01-23SQL
- 目標跟蹤新高度ECO+:解除深度特徵被封印的力量2018-08-09特徵
- aspr1.3x註冊版加殼之客串教學2004-09-29
- [zt] oracle跟蹤檔案與跟蹤事件2008-09-10Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)2007-03-16Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)2007-09-18Oracle事件
- 使用TKPROF檢視跟蹤檔案2016-11-01
- 使用 Tkprof 分析 ORACLE 跟蹤檔案2017-05-06Oracle
- 啟用使用者程式跟蹤2011-07-29
- 使用dtrace跟蹤oracle函式呼叫2013-03-06Oracle函式
- 基於行跟蹤的ROWDEPENDENCIES實現資訊變化跟蹤2015-05-04
- 對Crunch v1.1加殼程式的手動脫殼及反跟蹤程式碼的一點分析
(15千字)2000-10-02
- git的跟蹤分支和遠端跟蹤分支學習筆記2018-03-22Git筆記
- 對使用dblink的10046事件跟蹤2010-11-22事件
- 使用OpenCV進行ROS 2的循線跟蹤2024-07-22OpenCVROS
- SQL 的跟蹤方法trace2007-06-11SQL
- ASPR1.2x新版本的脫殼初步探討 (5千字)2015-11-15
- 使用 Python 和 Prometheus 跟蹤天氣2019-05-03PythonPrometheus
- 轉:使用 Tkprof 分析 ORACLE 跟蹤檔案2020-12-10Oracle
- 使用10046跟蹤sql語句2013-05-29SQL
- sqlnet跟蹤2016-12-04SQL