帶殼VM二次驗(yàn)證DLL動(dòng)態(tài)地址補(bǔ)碼打補(bǔ)丁教程+源碼
今天給大家做個(gè)如何Crack DLL加殼后的二次驗(yàn)證和打動(dòng)態(tài)地址打補(bǔ)丁加補(bǔ)碼。
看到挺多人需要的,這里我做個(gè)教程,由于方法也挺多的,這里我就做了一個(gè)最簡(jiǎn)單的。
要對(duì)打有殼的DLL打補(bǔ)丁,必須條件是在他初始化前比他先注入我們的破解補(bǔ)丁,然后對(duì)二次驗(yàn)證的DLL判斷他是否解碼。
方法一般是用到HOOK API判斷是否解碼,由于很多都不懂怎么去找解碼的API,這里我就用了另一種循環(huán)取模塊句柄判斷DLL
是否解碼,這樣會(huì)對(duì)配置差的電腦可能會(huì)卡,不過(guò)也不影響,因?yàn)橹灰狢rack完畢,我們的破解補(bǔ)丁就不會(huì)繼續(xù)工作了
這里我用的是劫持的DLL來(lái)注入我們的破解補(bǔ)丁實(shí)現(xiàn)Crack,我已經(jīng)提前寫好了1個(gè)本地驗(yàn)證的DLL,我拿LOL來(lái)做例子,
無(wú)殼的我就不演示了,無(wú)殼的都懂直接OD修改就可以了,這里我是VM掉加了VMP殼的,下面看看卡密如果正確提示什么
這里我隨便寫了 卡密如果是1就是正確的,其他都不會(huì)提示正確,TP3Helper和League of Legends都會(huì)加載Bugtrace.dll
所以我隨便用哪個(gè)進(jìn)程來(lái)調(diào)試也可以了。帶VMP殼的,要運(yùn)行才能解碼,這里就是我驗(yàn)證的地方了,被V成狗了。
怎么破解我就不多解釋了,要破一個(gè)exe或者dll 可以先在OD嘗試改好,然后確定你的數(shù)據(jù)沒(méi)錯(cuò)了就可以做補(bǔ)丁了。
現(xiàn)在我做一下補(bǔ)丁,對(duì)于怎么破解DLL的驗(yàn)證這個(gè)
你們自己去找了,我直接演示怎么破解我這個(gè)本地DLL并打補(bǔ)丁。
100080E9 68 58C6DD81 push 0x81DDC658
BugTrace.dll+80E9 - CC - int 3
100080EE 68 E8C34E0B push 0xB4EC3E8
BugTrace.dll+80EE - CC - int 3
找到之后BugTrace.dll+80EE 這樣的 不管他地址變成什么,我們都可以取到他地址了。
由于DLL基本都是動(dòng)態(tài)的,和普通的打補(bǔ)丁不同 我們要破解的地址他是隨時(shí)會(huì)變的,這里就要取他偏移來(lái)定位做補(bǔ)丁。
現(xiàn)在開始寫下 打補(bǔ)丁和補(bǔ)碼 這里我要賦值eax為0 才會(huì)破解成功。
先去DLL的空白地址 記錄下偏移 這里的整個(gè)塊 不要勾選,勾選了會(huì)跳到其他模塊,每個(gè)DLL都會(huì)有一些空白的地方,
這樣就讓我們可以方便補(bǔ)碼過(guò)去了,如果沒(méi)空白內(nèi)存地址,就用易語(yǔ)言的申請(qǐng)臨時(shí)空間,自己申請(qǐng)一個(gè)空白的地址。
100094CA 0000 add byte ptr ds:[eax],al
BugTrace.dll+94CA - 00 00 - add [eax],al
100094D4 ^\E9 15ECFFFF jmp 100080EE
BugTrace.dll+94D4 - CC - int 3
把原來(lái)的數(shù)據(jù)補(bǔ)上 跳回去,OD里寫好了,然后制作補(bǔ)丁,這里的跳回JMP 不能直接復(fù)制他的二進(jìn)制代碼,不然軟件重啟了
地址就會(huì)變,OD里寫的是固定方法的,所以這里用到JMP_Addr,自動(dòng)計(jì)算跳回地址
也就是 在10094D4我們要跳到100080EE 補(bǔ)丁里寫就 跳轉(zhuǎn)地址 寫你要跳轉(zhuǎn)回去的地址,入口地址就是寫這里10094D4
你們也可以用另一個(gè)方法寫個(gè)test.exe測(cè)試下寫入,確認(rèn)下寫內(nèi)存的方式和地址沒(méi)錯(cuò),就可以了。
好了,手動(dòng)注入我們的破解DLL測(cè)試沒(méi)問(wèn)題。
好了 補(bǔ)丁寫好了 我測(cè)試下。這里我會(huì)把劫持的DLL打包上 因?yàn)槟銢](méi)有劫持的DLL 是不會(huì)加載我們的破解補(bǔ)丁的
也可以自己寫一個(gè) 還有要說(shuō)下 每個(gè)程序 并不是那種劫持都可以用的,例如TP3Helper.exe 這個(gè)就只認(rèn)winmm.dll
我的另一個(gè)劫持DLL 就沒(méi)加載到了 看看League of Legends 加載哪個(gè)League of Legends加載Version.dll,winmm.dll
所以你要先看看軟件是加載哪個(gè)劫持DLL對(duì)應(yīng)使用,百度也有源碼,我的就是寫了加載我的DLL。
這樣就破解了,這里看到地址已經(jīng)變了,這是源碼里寫的補(bǔ)丁數(shù)據(jù)。
整理一下吧,可能啰嗦了,總之就很簡(jiǎn)單,用我發(fā)的劫持DLL 然后源碼直接寫破解補(bǔ)丁即可。Bugtrace.dll自己更改。
好了教程到此結(jié)束。編譯后的破解補(bǔ)丁不要改名字 否則劫持無(wú)法加載。
VM.jpg (245.05 KB, 下載次數(shù): 265)
下載附件
保存到相冊(cè)
2020-2-19 12:39 上傳
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
|