160 - 34 Cruehead.3

環境
windows xp sp3

工具
1.exeinfo pe
2.ollydbg
3.WinHex

查殼
和上一個一樣,OD載入判斷出

測試
運行后發現是沒有任何提示,而且沒有輸入serial的窗口,通過任務管理器可以看出程序的名稱寫有“Uncracked”,可以猜測是keyfile了。

也可以通過OD載入后觀察出來:

00401016  |.  6A 00         push 0x0                                 ; /hTemplateFile = NULL
00401018  |.  68 80000000   push 0x80                                ; |Attributes = NORMAL
0040101D  |.  6A 03         push 0x3                                 ; |Mode = OPEN_EXISTING
0040101F  |.  6A 00         push 0x0                                 ; |pSecurity = NULL
00401021  |.  6A 03         push 0x3                                 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
00401023  |.  68 000000C0   push 0xC0000000                          ; |Access = GENERIC_READ|GENERIC_WRITE
00401028  |.  68 D7204000   push Cruehead.004020D7                   ; |FileName = "CRACKME3.KEY"
0040102D  |.  E8 76040000   call <jmp.&KERNEL32.CreateFileA>         ; \CreateFileA
00401032  |.  83F8 FF       cmp eax,-0x1                             ;  判斷文件是否存在
00401035  |.  75 0C         jnz XCruehead.00401043
00401037  |>  68 0E214000   push Cruehead.0040210E                   ;  ASCII "CrackMe v3.0             "
0040103C  |.  E8 B4020000   call Cruehead.004012F5
00401041  |.  EB 6B         jmp XCruehead.004010AE
00401043  |>  A3 F5204000   mov dword ptr ds:[0x4020F5],eax
00401048  |.  B8 12000000   mov eax,0x12
0040104D  |.  BB 08204000   mov ebx,Cruehead.00402008
00401052  |.  6A 00         push 0x0                                 ; /pOverlapped = NULL
00401054  |.  68 A0214000   push Cruehead.004021A0                   ; |pBytesRead = Cruehead.004021A0
00401059  |.  50            push eax                                 ; |BytesToRead => 12 (18.)
0040105A  |.  53            push ebx                                 ; |Buffer => Cruehead.00402008
0040105B  |.  FF35 F5204000 push dword ptr ds:[0x4020F5]             ; |hFile = NULL
00401061  |.  E8 30040000   call <jmp.&KERNEL32.ReadFile>            ; \ReadFile
00401066  |.  833D A0214000>cmp dword ptr ds:[0x4021A0],0x12         ;  這里是確認keyfile是否存在0x12個字符
0040106D  |.^ 75 C8         jnz XCruehead.00401037
0040106F  |.  68 08204000   push Cruehead.00402008
00401074  |.  E8 98020000   call Cruehead.00401311                   ;  將前14個字符進行計算,結果保存在[0x4020F9]中
00401079  |.  8135 F9204000>xor dword ptr ds:[0x4020F9],0x12345678   ;  這里是計算異或
00401083  |.  83C4 04       add esp,0x4
00401086  |.  68 08204000   push Cruehead.00402008
0040108B  |.  E8 AC020000   call Cruehead.0040133C                   ;  這里是取keyfile中后4個字符
00401090  |.  83C4 04       add esp,0x4
00401093  |.  3B05 F9204000 cmp eax,dword ptr ds:[0x4020F9]          ;  比較是否相同
00401099  |.  0F94C0        sete al
0040109C  |.  50            push eax
0040109D  |.  84C0          test al,al
0040109F  |.^ 74 96         je XCruehead.00401037

可以在[00401028]處得知要的keyfile名稱。接下來就是讀取keyfile文件內是否存在18個字符(0x12)。不存在就跳轉。

00401311  /$  33C9          xor ecx,ecx
00401313  |.  33C0          xor eax,eax
00401315  |.  8B7424 04     mov esi,dword ptr ss:[esp+0x4]
00401319  |.  B3 41         mov bl,0x41
0040131B  |>  8A06          /mov al,byte ptr ds:[esi]
0040131D  |.  32C3          |xor al,bl
0040131F  |.  8806          |mov byte ptr ds:[esi],al                ;  這里將會改變從keyfile中讀取到的值,并將這個值顯示為Cracker名
00401321  |.  46            |inc esi
00401322  |.  FEC3          |inc bl
00401324  |.  0105 F9204000 |add dword ptr ds:[0x4020F9],eax
0040132A  |.  3C 00         |cmp al,0x0
0040132C  |.  74 07         |je XCruehead.00401335
0040132E  |.  FEC1          |inc cl
00401330  |.  80FB 4F       |cmp bl,0x4F
00401333  |.^ 75 E6         \jnz XCruehead.0040131B
00401335  |>  890D 49214000 mov dword ptr ds:[0x402149],ecx
0040133B  \.  C3            retn

讀取前14個字符的內容,并且對bl的值進行異或,異或后的結果保存回對應的位置,用來作為Cracker的name
前14個字符加起來的值之和會與0x12345678異或,異或后的結果將于剩下的4個字符比較是否相等,相等就顯示正確的對話框。

要用16進制編輯器編輯!
keyfile:CRACKME3.KEY的內容:

20 20 20 20 20 20 20 20 20 20 20 20 20 20 D1 53 34 12

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376395.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376395.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376395.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sed awk tr等文本處理命令

指定行范圍替換&#xff1a; sed -i "520,950s/\(.*\)\(HOST_CMD_.*\)\(,\)/\1{ \2, \"\2\" },/g" hostCmdMacro.h linux shell sed命令與轉義字符 A“2013/06/09“ sed “s#hello#$A#" sed 指定行范圍匹配 刪除文本中的重復行(sortuniq/awk/sed) 263…

160 - 35 cupofcoffe.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后可以看出是VB程序 測試 輸入&#xff1a;12345678 顯示的內容發生了改變&#xff0c;也不影響查找字符串。 004FEC14 > \8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] 004FEC17 . 51 …

centos7 安裝mysql

http://my.oschina.net/u/919612/blog/310533 測試可用 隨后又想到了&#xff0c;做個iso鏡像&#xff0c;然后掛載在CDrom上&#xff0c;然后安裝JDK成功&#xff0c;但是mysql安裝失敗&#xff0c;可能由于只從官網上下載了server&#xff0c;而沒有解決依賴關系。 最后&…

ecshop后臺增加模板頁的方法

CShop的動態模板機制是一個非常靈活的系統,管理員可以在后臺根據自己的要求調整模板模塊的顯示位置。本文詳細講解了如何修改ECSHOP內部結構使得用戶可以添加自己的模板頁從而方便靈活的使用系統自帶的模板系統和廣告位系統。 如下圖所示 可以看到ECShop支持設置的模板一共如上…

160 - 36 cupofcoffe.2

環境 Winows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后看出是VB程序 測試 輸入&#xff1a;12345678 繼續OD搜字符串&#xff1a; 00521688 . 68 60054500 push cupofcof.00450560 ; UNICODE ".........." 0052168D …

使用VS2010 + VirtualDDK 調試驅動

總的說來比 WINDBG要簡單的多 可以看到詳細的調試內容 但是好像不知道怎么弄成一般的工程 待定今天玩了一下 感覺還是有點麻煩 網站&#xff1a; http://techird.blog.163.com/blog/static/1215640362011112385241568/ 轉載于:https://www.cnblogs.com/zcc1414/p/3982457.html…

160 - 37 CyberBlade.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入是VB程序。 測試 OD載入直接搜字符串。 這個是當輸入為空時會彈出消息框告訴你要輸入9個字符。 0040E005 > \8B4D E4 mov ecx,dword ptr ss:[ebp-0x1C] 0040E008 . 51 push…

恢復回收站里一篇文章 --我的實習生涯

今天想恢復我回收站里的一篇日志竟然沒這功能&#xff0c;無奈只好ctrlv出來了。半年前的文章&#xff0c;現在已經就業了&#xff0c;工作挺開心的。。。原文如下: 今天是年前的最后一個周6&#xff0c;公司的SVN掉了&#xff0c;我就賣賣呆在CSDN上瞎轉轉&#xff0c;也寫寫…

Score Inflation USACO 3.1

完全背包足以,參照完全背包最優解就過了 /*ID: hubiao cavePROG: inflateLANG: C*/#include<iostream>#include<fstream> #include<cstring> #include<string>using namespace std;int main(){ifstream fin("inflate.in");ofstream fout(&qu…

160 - 38 CyberBlade.2

環境 Windows xp sp3 工具 1.VBExplorer 2.ollydbg 查殼 OD載入往上翻可以看出是vb程序&#xff0c;看到 00401042 .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>] ; MSVBVM50.MethCallEngine 可以知道是p-code的了 測試…

160 - 39 damn

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD加載就知道有殼了&#xff0c;可以esp定律直接脫掉 exeinfoPE查殼&#xff1a; 測試 點擊LOCKED圖片會彈出消息框&#xff0c;Register注冊按鈕無法點擊&#xff01; 猜測Register按鈕會在輸入正確的nam…

[轉載] Python3網絡爬蟲

這篇文章描述了使用python開發最小的網絡爬蟲的方法和步驟, 以及如何用fiddler來探索瀏覽器的行為來幫助爬蟲的開發. http://www.yiibai.com/python/python3-webbug-series4.html 轉載于:https://www.cnblogs.com/zhengran/p/4177944.html

不適用第三方變量,交換兩個數

異或實現&#xff1a; void foo(int *a,int *b){ *a*a^*b; *b*a^*b; *a*a^*b;}void main(){int a1,b2; foo(&a,&b); printf("%d.%d.%d",a,b); } 或者下例&#xff1a; void foo(int *a,int *b){ *a*a*b; *b*a-*b; *a*a-*b;}void main(){int a1,b2,c3; foo(&a…

Android系統原理與源碼分析(1):利用Java反射技術阻止通過按鈕關閉對話框

原文出處&#xff1a;博主宇宙的極客http://www.cnblogs.com/nokiaguy/archive/2010/07/27/1786482.html 眾所周知&#xff0c;AlertDialog類用于顯示對話框。關于AlertDialog的基本用法在這里就不詳細介紹了&#xff0c;網上有很多&#xff0c;讀者可以自己搜索。那么本文要介…

160 - 40 DaNiEl-RJ.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 無殼Delphi程序 測試&#xff1a; 按照說明點到這個注冊窗口。 OD載入搜字符串&#xff0c;直接可以定位到這里 0042D4A8 /. 55 push ebp 0042D4A9 |. 8BEC mov ebp,esp 0042D4…

IOS詳解TableView——選項抽屜(天貓商品列表)

在之前的有篇文章講述了利用HeaderView來寫類似QQ好友列表的表視圖。 這里寫的天貓抽屜其實也可以用該方法實現&#xff0c;具體到細節每個人也有所不同。這里采用的是點擊cell對cell進行運動處理以展開“抽屜”。 最后完成的效果大概是這個樣子。 主要的環節&#xff1a; 點擊…

Unicode與JavaScript詳解 [很好的文章轉]

上個月&#xff0c;我做了一次分享&#xff0c;詳細介紹了Unicode字符集&#xff0c;以及JavaScript語言對它的支持。下面就是這次分享的講稿。 一、Unicode是什么&#xff1f; Unicode源于一個很簡單的想法&#xff1a;將全世界所有的字符包含在一個集合里&#xff0c;計算機只…

編輯器使用說明

歡迎使用Markdown編輯器寫博客 本Markdown編輯器使用StackEdit修改而來&#xff0c;用它寫博客&#xff0c;將會帶來全新的體驗哦&#xff1a; Markdown和擴展Markdown簡潔的語法代碼塊高亮圖片鏈接和圖片上傳LaTex數學公式UML序列圖和流程圖離線寫博客導入導出Markdown文件豐…

關于產品的一些思考——百度之百度百科

百度百科最近改版了&#xff0c;發現有些地方不符合一般人的行為習慣。 1.新版本排版 首先應該將摘要&#xff0c;簡介&#xff0c;目錄什么的放在左側&#xff0c;而不是右側&#xff0c;因為我們都是從左到右&#xff0c;從上到下觀察事物的&#xff0c;而且百科的東西我們不…

Python3.6 IDLE 使用 multiprocessing.Process 不顯示執行函數的打印

要運行的程序&#xff1a; import os from multiprocessing import Process import timedef run_proc(name):print(Child process %s (%s) Running...%(name,os.getpid()))# time.sleep(5)if __name__ __main__:print("Show Start:")print(Parent process %s. % os…