首页
社区
课程
招聘
[原创]献給新手(二)--不用脱壳就能修改加壳软件(SoftICE还旧之旅)
2011-1-5 03:13 13964

[原创]献給新手(二)--不用脱壳就能修改加壳软件(SoftICE还旧之旅)

2011-1-5 03:13
13964
【原创】献給新手(二)--不用脱壳就能修改加壳软件(SoftICE还旧之旅)

抱歉讓各位久等了,新年期間,網路不太順,看雪的網頁老開不太起來,所以遲至今日才發第二篇,請大家見諒

現在開始第二篇的正題:
挑剔的讀者也許會問到如果不脫壳,那麼在記憶體找到關鍵性的程式碼要修改,但是到了檔案中找又找不到,那又如何能修改呢?別擔心,不脫壳不但可以分析也可以修改,這才是完美的破解方案。

話說從頭,我們回到上一篇:献给新手(一)--不用脱壳就能调试加壳软件(SoftICE还旧之旅)
http://bbs.pediy.com/showthread.php?t=127562
RegOpenKeyA被中斷下來的地方,但在繼續下去之前別忘了把剛才被程式改過的MyReg2自己在登錄編輯程式中改回MyReg1

4019C5  E8A6F90500    CALL  ADVAPI32!RegOpenKeyA
4019CA  8945EC        MOV  [EBP-14],EAX  <--程式斷在這裏
4019CD  837DEC00      CMP  DWORT PTR [EBP-14],00
4019D1  7405          JZ 004019D8  <--注意這行
…       …            …
…       …            …

正常執行到這裏SoftICE回報說要跳(JUMP)
各位可以試試看把4019D1的7405改成7505(用E EIP指令下去改)
這時SoftICE就回報不跳(NO JUMP)



現在按F5讓SoftICE全速執行,雖然程式還是提示說MyReg1已經改成MyReg2了,但是在登錄編輯程式中按下F5重新整理後應該MyReg1還是MyReg1並沒有被改名才對!!

因為一旦在4019D1處沒有跳開,繼續往下執行到了4019D6的機械碼是絕對跳躍 JMP  401A33,這下這個副程式全結束了,根本沒有機會去執行RegCreateKeyA
更遑論後面的RegSetValueExA和RegDeleteValueA,等於這個程式就失去作用了!

但是如果抄下83 7D EC 00 74 05這些機械碼要去RenameRegKey UPX.exe中用HexEdit或UltraEdit中去找又找不到,那這個程序怎麼改呢?

別擔心這時您可以使用d UP 2這個軟體
dup2.beta.rar
我用的是V2.19 Beta9,如果要最新版本可以參考這裡:
http://bbs.pediy.com/showthread.php?p=909414#post909414
來產生一個Loader檔案,為什麼叫Loader檔而不叫Patch呢?因為程序被加了壳,在沒有運行前沒有辦法修改,所以Patch檔無用武之地,這時就要先用Loader程式來載入有壳的那個程序,全程加以監控,直到發現我們要修改的資料出現加以修改為止,這樣就可以不脫壳也能達到修改程序的目的了^^



我們要點選 “New Project”在出現的表單中隨意填上些資料,接著點選 “Add”



在出現的選項中點選 “[Search & Replace Patch]”

回到主選單中會多了一項[Search & Replace Patch]我們用滑鼠點選它之後再按右邊的 “Edit”鍵,


在右上方的 “…”鍵按下後點選我們剛才追踨的RenameRegKey UPX.exe
另外在中央的空白區域按下滑鼠右鍵



會彈出一個副選單在這裏選 “Add”



接著出現一個Edit Search and Replace Pattern的對話框,我們在Search Pattern中輸入剛才想要輸入HexEdit中尋找的十六進位字串 83 7D EC 00 74 05(每兩個數字和數間要有空格)Replace Pattern則輸入83 7D EC 00 75 05由於只有74改75所以就會變成畫面上看到的?? ?? ?? ?? 75 ?? 按下 “Save”鍵離開



回到Search and Replace Patch畫面我們記得要在下方的Target is a compressed PE File這個選項前面打勾,之後按下 “Save”鍵離開。



在最後回到主選單,按下右邊的 “Create Loader”並選擇 “simple loader” 按下 “OK” 鍵即可產生一個Loader檔。

離開前記得按一下 “Save Project” 將整個流程存檔下來。
由於我們不曉得程式在d UP2的掌握下運行確實的記憶體位址,所以第一次運行時d UP2會先把我們給它的資料搜尋一遍。



如果找到了就會有一個對話框告訴我們



並且在目錄下產生一個snr_offsets.ldr,但由於第一次運行時只是去搜尋並沒有做即時的Patch工作,所以如果你這時用登錄編輯程式按F5更新後去看,MyReg1是會被改成MyReg2的,沒關係我們先手動把它改回來,現在再執行一次Loader就不會有那兩個對話框出現了,並且MyReg1也不會被改成MyReg2了,至此我們真的沒有脱壳就完成了分析和破解惡意程式的任務了。

這是成品以及腳本:
Loader.rar

這樣是不是對使用SoftICE不脫壳就能分析或破解程序比較有信心了,下一篇我會用低階核心驅動程序(.sys)來示範SoftICE,OllyDBG對它也是不能直接分析,用慣了OllyDBG的人,只能再去加學WinDBG或其他支援Ring0的調試軟件,但如果你一開始碰的就是SoftICE,那就不用再學一樣工具了,既可以分析EXE也可以分析SYS喔

還是那句老話,本篇是給完全新手看的,不是指剛加入看雪學院的新手,而是完全沒接觸過OllyDBG或SoftICE的新手,所以內容很簡單,用SoftICE可以讓新手不太需要看複雜的机碼,讓他們一開始就可以產生興趣,不會久久都入不了門,沒有說OllyDBG不好的意思,請不要誤會才好

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (17)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2011-1-5 12:18
2
0
我就是那种新手 ,所以就吸引进来了
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bbat 2011-1-5 14:11
3
0
楼上太无语了

你这样还叫新手 那我是啥呢
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
为个润 2011-1-5 16:43
4
0
你真拽,拽的厉害
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ergongzi 2011-1-6 15:40
5
0
无语了,新手来学习..
雪    币: 286
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sydyzjl 2011-1-7 08:10
6
0
真的新手报到!
雪    币: 412
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
阿鑫 2011-1-7 08:52
7
0
没有手的报到啦!
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thhacker 2011-1-7 09:26
8
0
拿个凳子坐下来慢慢看
雪    币: 147
活跃值: (101)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
ninymay 2 2011-1-7 13:32
9
0
献给新手(三)--Windows还有更低阶的API--(SoftICE怀旧之旅)
己经发了,请至下列连结,谢谢
http://bbs.pediy.com/showthread.php?t=127714
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cjteam 2011-1-9 23:23
10
0
谢谢提供好文啊
雪    币: 469
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tonglei 2011-1-11 13:14
11
0
连脚都没有
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jallytang 2011-1-21 16:49
12
0
我是刚有想法的新手
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
langyidao 2011-6-1 11:02
13
0
好文收藏了,谢谢楼主让我重燃信心
雪    币: 323
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ycool 2012-3-4 16:01
14
0
softice强是强不过平台兼容性太差了。好像syser好一些
雪    币: 4565
活跃值: (927)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
b23526 2012-3-4 16:57
15
0
话说syser还有更新不?
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lzog 2012-8-22 21:07
16
0
新手冒个泡~~
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liyizhu 2012-9-7 12:24
17
0
嗯  为了学习增加信心来的
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
红警车 2012-9-7 15:13
18
0
我也冒个泡泡
游客
登录 | 注册 方可回帖
返回