吾愛破解 - LCG - LSG |安卓破解|病毒分析|huihengkj.com

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 829|回復: 19

[CrackMe] 不用調試,我才是最簡單的CrackMe:大道至簡

[復制鏈接]
樓主
qzhsjz 發表于 2020-8-1 19:01 回帖獎勵
CM是什么?Crackme是什么?這是什么東西?樓主發的什么?
他們都是一些公開給別人嘗試破解的小程序,制作 Crackme 的人可能是程序員,想測試一下自己的軟件保護技術,也可能是一位 Cracker,想挑戰一下其它 Cracker 的破解實力,也可能是一些正在學習破解的人,自己編一些小程序給自己破解,KeyGenMe是要求別人做出它的 keygen (序號產生器), ReverseMe 要求別人把它的算法做出逆向分析, UnpackMe 是要求別人把它成功脫殼,本版塊禁止回復非技術無關水貼。


不需要任何分析,你甚至不需要調試器的參與,只要點擊“破解”按鈕即可破解這個程序。
對于這個程序來說,破解失敗比破解成功要困難許多。
那么,你準備好了嗎?只要按一下按鈕,即可完成任務哦!

如果你不幸破解失敗了,那么恭喜你,你解出了完整的題目!

一如既往的,沒有殼,沒有花指令,只有VS默認的編譯優化。

大道至簡.7z (2.61 MB, 下載次數: 76)

免費評分

參與人數 1吾愛幣 +1 熱心值 +1 收起 理由
bugof52pj + 1 + 1 謝謝@Thanks!

查看全部評分

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
15310062345 發表于 2020-8-1 21:24
破解成功有什么用? 小白。。。
推薦
solly 發表于 2020-8-2 00:02
本帖最后由 solly 于 2020-8-2 02:00 編輯
qzhsjz 發表于 2020-8-1 21:38
有一些問題想請教:
您是怎么做到分析出分了好幾個線程跑的邏輯?
直接把這里的eax置0,不會產生另一個 ...

沒分析線程,不過可以看到全局變量 ds:[141040A50] 在不停變化,我還以為是定時器。
并且,界面UI的操作,一般是主線程的消息隊列來處理的,正常情況不應該出現沖突。

我是通過strcpy()函數特征碼找到函數,然后在 IDA 中查看對該函數的調用,稍微看看代碼,就確定了這個button的事件函數或其子函數、或其啟動的線程調用了這個strcpy(),下個斷點,點按鈕就斷下來了,算運氣好吧。因為要修改標簽,肯定要調用內存拷貝函數。
特征碼是:
74 1C 66 66 66 0F 1F 84 00 00 00 00 00
不要在 strcpy() 下斷,調用次數太多。而調用的地方一般很有限,可在調用處一個個試,我剛好是一次試成功。主要是看到了下面這些函數前面的代碼可疑:
[Asm] 純文本查看 復制代碼
.text:00000001400045CB loc_1400045CB:                          ; DATA XREF: .rdata:0000000140B67AC0o
.text:00000001400045CB                 mov     eax, cs:dword_141040A50
.text:00000001400045D1                 test    eax, eax
.text:00000001400045D3                 jnz     loc_140004702
.text:00000001400045D9                 mov     [rbp+var_28], 89E37834h
.text:00000001400045E0                 mov     [rbp+var_24], 600172B6h
.text:00000001400045E7                 mov     [rbp+var_20], 7834FF1Ah
.text:00000001400045EE                 mov     [rbp+var_1C], 593189E3h
.text:00000001400045F5                 mov     [rbp+var_18], 8D25h

嘗試把eax 修成0就看到了你要的效果了。

補充:
后來在IDA中看了那個全局變量的引用,發現是一個隨機數,由另一線程調用 c++的 rand()生成的。你設置的關鍵點在這里吧:
[Asm] 純文本查看 復制代碼
00000001400036A0 | 48:83EC 28                     | sub rsp,28                              |
00000001400036A4 | E8 2F37AB00                    | call 大道至簡.140AB6DD8                     |
00000001400036A9 | 44:8BC0                        | mov r8d,eax                             |
00000001400036AC | B8 56555555                    | mov eax,55555556                        |
00000001400036B1 | 41:F7E8                        | imul r8d                                |
00000001400036B4 | 8BCA                           | mov ecx,edx                             |
00000001400036B6 | C1E9 1F                        | shr ecx,1F                              |
00000001400036B9 | 03D1                           | add edx,ecx                             |
00000001400036BB | 8D0C52                         | lea ecx,qword ptr ds:[rdx+rdx*2]        |
00000001400036BE | 44:3BC1                        | cmp r8d,ecx                             |
00000001400036C1 | 74 E1                          | je 大道至簡.1400036A4                       |
00000001400036C3 | E8 1037AB00                    | call 大道至簡.140AB6DD8                     | 這里改成 mov eax, 0
00000001400036C8 | 8905 82D30301                  | mov dword ptr ds:[141040A50],eax        |
00000001400036CE | EB D4                          | jmp 大道至簡.1400036A4                      |

只要把 [141040A50] 置0就可以了。上面大概是一個死循環:
[C] 純文本查看 復制代碼
int var_141040A50 = 0; ///全局變量
void thread_proc() {
    while(true) {
        int a = rand();
        if(a != (a/3)*3) {
            var_141040A50 = rand();
        }
    }
}

推薦
solly 發表于 2020-8-1 21:22
關鍵點在這里:
[Asm] 純文本查看 復制代碼
00000001400045CB | 8B05 7FC40301          | mov eax,dword ptr ds:[141040A50]      |
00000001400045D1 | 85C0                   | test eax,eax                          |
00000001400045D3 | 0F85 29010000          | jne 大道至簡.140004702                    |

eax == 0, 即不跳轉,就顯示破解失敗。

免費評分

參與人數 1吾愛幣 +1 熱心值 +1 收起 理由
qzhsjz + 1 + 1 佩服!雖然不是我設計的關鍵點,但是這里更靠近本質!

查看全部評分

沙發
沒有細胞的人 發表于 2020-8-1 20:14
腦洞清奇,小白路過
3#
liujiata 發表于 2020-8-1 20:42
好一個大道至簡。可惜我是小白。
4#
 樓主| qzhsjz 發表于 2020-8-1 20:44 |樓主
liujiata 發表于 2020-8-1 20:42
好一個大道至簡。可惜我是小白。

小白可以點一下破解的,自動破解
5#
tardis2333 發表于 2020-8-1 20:59
學習了,感謝
8#
 樓主| qzhsjz 發表于 2020-8-1 21:38 |樓主
solly 發表于 2020-8-1 21:22
關鍵點在這里:
[mw_shl_code=asm,true]00000001400045CB | 8B05 7FC40301          | mov eax,dword ptr  ...

有一些問題想請教:
您是怎么做到分析出分了好幾個線程跑的邏輯?
直接把這里的eax置0,不會產生另一個線程和這個線程之間對于破解狀態那個Label的競爭嗎?
9#
沒有細胞的人 發表于 2020-8-1 23:35
求問
小白:我只想知道你是怎么讓我的OD附加或者載入都不行的· - ·,這種是怎么解決的?
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:本版塊禁止回復與主題無關非技術內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|處罰記錄|聯系我們|吾愛破解 - LCG - LSG ( )

GMT+8, 2020-8-7 05:23

Powered by Discuz!

500彩票邀请码Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表

500彩票邀請碼-彩經網