Tema destacado: Grupo de acebook de elhacker.net
Autor
|
Tema: [BRAINSTORMING] KPC v3 (Karcrack Project Crypter) (Leído 7,373 veces)
|
Karcrack
Desconectado
Mensajes: 2.192
Se siente observado ¬¬'
|
Hola, hola!  Ya hace mucho que no acabo ningún proyecto en VB6... tengo una gran cantidad a medias... y se me ocurrió reanudar el Karcrack Project Crypter... Más información sobre el proyecto: http://foro.elhacker.net/programacion_vb/sourceactualizado_karcrack_project_crypter_encripta_tus_proyectos_en_vb-t221869.0.html http://foro.elhacker.net/analisis_y_diseno_de_malware/karcrack_project_crypter_v21_kpc-t256127.0.html Y se me ocurrió que la mejor forma de saber que necesita la gente a la hora de hacer indetectables sus proyectos era iniciar una lluvia de ideas  Simplemente propongan  Por ahora tengo esta lista: - Ofuscación de APIs (Varios métodos, un par secretos
) - Cifrado de cadenas (Varios métodos, se me ocurrió añadir la posibilidad de usar algoritmos propios)
- Cifrado de APIs (AKA Invoke/Zombie_Invoke/CallByName/CallByHash...)
- Ofuscación de funciones (GoTo y añadir basurilla
) - Cambio 'avanzado' de opciones del proyecto

Alguna sugerencia?! Un saludo 
|
|
|
|
|
En línea
|
|
|
|
|
_katze_
|
y que otros metodos se pueden hacer pero atraves de code....yo ni idea de esto pero creo q los av's t colocan firma tambien donde compilas el proyecto seria modificar esto,agregar variantes al split,LOF y demas q tienen firmass... :S
|
|
|
|
|
En línea
|
|
|
|
BlackZeroX (Astaroth)
Wiki
Desconectado
Mensajes: 2.831
I'Love...!¡.
|
. Solo se me ocurrio una. * dividir la funcione donde se encuentren sentencias if then, Select Case, u otras, pero sin perder la congruencia de la misma. es decir: Private Sub Form_Load() Dim i As Integer Dim str_v As String If Caca_Malware(6, 6, 6) = Pedos_frijoleros(6, 9) Then str_v = o4215(i) Else str_v = awuiwiche(45) + i End If MsgBox str_v End Sub Pasarlo a funciones: Private Sub Form_Load() Dim i As Integer Dim str_v As String Call compareifthen(str_v, i) MsgBox str_v End Sub Private Sub compareifthen(ByRef str_v As String, ByRef i As String) If Caca_Malware(6, 6, 6) = Pedos_frijoleros(6, 9) Then Call icacamalware_frijolero(str_v, i) Else Call strv_wilwuicho End If End Sub Private Sub icacamalware_frijolero(ByRef str_v As String, ByRef i As Integer) ' // esto es trivial pero bueno str_v = o4215(i) End Sub Private Sub strv_wilwuicho(ByRef str_v As String, ByRef i As Integer) ' // esto es trivial pero bueno str_v = awuiwiche(45) + i End Sub Nota: En mi forma de pensar este tema es OFF-Topic, citando las reglas le pese a quien le pese. Dulces Lunas!¡.
|
|
|
|
« Última modificación: 21 Enero 2011, 01:12 por BlackZeroX▓▓▒▒░░ »
|
En línea
|
|
|
|
|
raul338
|
Y que pasa con lo basico de todo protector, ofuscacion de variables? Es una pequeña trabita mas, pero es pesada al menos  Nota: En mi forma de pensar este tema es OFF-Topic, citando las reglas le pese a quien le pese. Para mi deberia ir mejor en criptografia, pero nose 
|
|
|
|
|
En línea
|
|
|
|
BlackZeroX (Astaroth)
Wiki
Desconectado
Mensajes: 2.831
I'Love...!¡.
|
Para mi deberia ir mejor en criptografia, pero nose  Foro Libre, hay nadie no vera feo. Dulces Luans!¡.
|
|
|
|
|
En línea
|
|
|
|
|
LeandroA
|
Muy buena iniciativa Karcrack, realmente no se me ocurren muchas ideas para aportar si no mas bien preguntas, yo con el tema de mi proyecto estoy investigando un poco de todo esto de la indetectabilidad, la pregunta es si vos vas a utilizar Ofuscación de APIs, que garantía hay de que esto pueda ser seguro con todas las apis, me refiero al funciona miento, osea algunas apis utilizan byref, y otras byval para los parámetros, si no me equivoco cuando es byref se utiliza VarPtr entonces el crypter seria capaz de reconocer cada parámetro de cada api y hacer que esto funcione automaticamente?
por otro lado no seria mejor hacerlo sobre un ejecutable, en vez desde el proyecto? (Pregunto por que no se) si uno crearía un crypter "indetectable" y enveviera el .exe dentro de si mismo (con alguna encriptacion) ,luego lo extrae y lo ejecuta inyectandolo dentro del mismo crypter, esto podría ser detectado?
bueno por el momento me vienen esas intrigas.
|
|
|
|
|
En línea
|
|
|
|
Elemental Code
Desconectado
Mensajes: 499
Im beyond the system
|
va a sonar loco pero yo me saque de ensima unas firmas una vez haciendo lo siguiente: Que siempre haya un form: al parecer al avast no le gusta que ejecutes codigo desde el sub_main sin mostrar forms. Que tenga un icono personalizado: NO PREGUNTEN, cambie el icono de vb y panda no lo detecto. y este es el mas loco de todos. Cifre las cadenas estaticas :S si cuando me tengo que abrir a mi mismo para usar un stub o algo asi lo hago de la sig forma: MySelf = "exe." & StrReverse(App.EXEName) & "\" & StrReverse(App.Path) Por alguna razon, Kaspersky le parece menos sospechoso esto que decirle MySelf = app.path & "\" & app.exename & ".exe" ahora yo pregunto, el nombre con el que se declara una constante para usar alguna api o funcion ej: Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8 Private Const INTERNET_RAS_INSTALLED As Long = &H10 Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20 Private Const I NTERNET_CONNECTION_CONFIGURED As Long = &H40 influye en algo? este... no se me ocurre mas nada. Cuando me caiga la ficha de algo mas vuelvo. PD: hay alguna diferencia para un av en compilarlo en P.code o codigo nativo?
|
|
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.192
Se siente observado ¬¬'
|
@_katze_:Me parece una buena idea el reemplazo automatizado de funciones/metodos como Split, App.Exename... etc @BlackZeroX▓▓▒▒░░:Es interesante, pero me parece que a la hora de generar el algoritmo se liarian las cosas @raul338:Es la parte que mas rabia me da de los ofuscadores, cambiar los nombres de las variables por aswWdsa1sA no sirve para nada, como mucho quita las firmas estáticas que ya tengas en tu proyecto... Y ademas, puedes decirle al compilador que no mete los nombres de variables en el fichero compilado, asi que esa opcion ya esta en mi lista @LeandroA:Es relativamente sencillo automatizar el cifrado de las APIs (El metodo de Invoke/CallByName...) siempre que tengas la declaracion, aunque tambien habria que fijarse un poquito en como se llama a la función, ya que a pesar de que en la declaracion este ByRef el usuario puede especificar ByVal... Respecto a lo de crear un crypter... no le veo intereses, lo que mola es modificar el código y dejarlo indetectable @Elemental Code:Los AVs han abusado muchísimo con sus firmas y detecciones heurísticas, de tal forma que un proyecto vació de VB6 ya es detectado por varios AVs... Lo del formulario es cierto, pero eso es un falso positivo... si que es cierto que algunos AVs detectan el uso de ciertas combinaciones como: Sub Main() + App.Path, pero eso se solucionaria con la idea de _katze_  Respecto a las constantes, hasta donde yo se no aparecen los nombres, solo los de las variables, pero como he dicho antes eso se puede modificar  Y por último, sí, existe diferencia al compilar en P-CODE o N-CODE y también si vas modificando otros parámetros de la compilación... esto es debido a que el fichero compilado varia, y por lo tanto la detección también @Todos: Gracias por la ayuda @Mods: Si veis necesario moverlo hacedlo... Lo puse aquí porque es donde más programadores de VB6 lo podrán ver... Ademas no lo veo Off-Topic, por que se están debatiendo temas relacionados con el lenguaje de programación VB6, este subforo no es solo para preguntar y pegar codes  Un saludo 
|
|
|
|
« Última modificación: 21 Enero 2011, 14:34 por Karcrack »
|
En línea
|
|
|
|
|
_katze_
|
creo q deveriamos abrir un topic y hacer variaciones de funciones que simulen a las mismas para ir ganando tiempo al proyecto hacer split y etc y q las mejorcitas c vallan agregando...
|
|
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.192
Se siente observado ¬¬'
|
No te preocupes _katze_, ya me encargo yo de la programación  Esto no es ningún proyecto comunitario ni nada así, solo necesito algunas ideas que nos interesen a los programadores de VB6 
|
|
|
|
|
En línea
|
|
|
|
|
_katze_
|
pero seria bueno como reto jejeje y no digo q sea comunitario
|
|
|
|
|
En línea
|
|
|
|
xpro
Desconectado
Mensajes: 10
|
Para mi beneficio, te diría que buscaras alternativas a las típicas cadenas que todos usamos, como por ejemplo..
El típico Split, se podría crear una función nueva o alguna alternativa a esto ( que no sea el resource, que salta kav. ). Por otra parte se podría intentar aquello de ejecutar las strings desde memoria..
Lo de ofuscar las api's, pues es una muy buena idea espero que funcione perfectamente. Por otro lado, puesto que este programa casi siempre se utiliza para ofuscar el code de crypters ( generalmente ), buscaría alguna manera de ofuscar los ya imposible de Fuddear runpe's.. y bueno, poco más te puedo decir creo que cualquier idea que se te ocurra a tí siempre será mucho mejor que lo que yo pueda decir.
Un saludo !
PD: Aquí, yo al menos en vb6 te echaba de menos..
|
|
|
|
|
En línea
|
|
|
|
The Swash
Desconectado
Mensajes: 104
Programmer
|
Bueno Karcrack, digamos que puedo dar una pequeña idea que no reemplazaria al ofuscamiento de API pero depronto sea útil. Recuerdo que hace un tiempo cuando usaba VB (pasado) un día Avira detectaba DllFunctionCall, que justamente iba en el invoke, al modificar la libreria MSVBVM60 uno de sus caracteres Avira se iba, pero todo quedaba no funcional. Pero resulta que la declaración de esa DLL no se ocupa hasta llamar la función entonces digamos que se puede hacer algo al abrir el ejecutable, sería cambiar en la declaración la libreria por xDDD.DLL un ejemplo, y cuando ejecuten el archivo llamar a un pequeño Copy(Encryptado("MSVBVM60.DLL"),"xDDD.DLL"). Te recalco algunas funciones que en si son detectadas Split - Kaspersky LOF - Avira, A-squared App.Path + App.ExeName + ".exe", Avira creo. Strings detectadas como "Stub", "HKCU../CurrentVersion/Run" Espero de algo te sirva, Animo con eso Karcrack! Como te digo es una pequeña experiencia que quizás sirva. Un saludo y gran iniciativa como siempre Karcrack! PD: Que detalle el de Kruzty 
|
|
|
|
|
En línea
|
|
|
|
mixer
Desconectado
Mensajes: 3
|
Ideas para considerar:
- Agregar funciones alternativas a Split, LOF y Apertura, lectura de archivos. - Que pueda agregar una buena cantidad de API reales pero inofensivas, o API falsas - Varios modulos o forms con código Basura - Reemplazar cadenas de Constantes - Algo que muchos AV detectan la asignacion de valores constantes podriamos ofuscarlo un poco
Por ejemplo si me detecta Var1 = &H4 puedo usar:
Var2 = &H4 + 15 Var1 = Var2 - 15
al final Var1 tomará el mismo valor. Con esos sacas a Nod, MSEssentials y varios más.
|
|
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.192
Se siente observado ¬¬'
|
Es interesante la ofuscación de constantes  Aunque lo de agregar módulos/funciones basura no me gusta la verdad... para mi es importante que el codigo resultante tenga una lectura tan sencilla como estaba antes... aunque lo que dices de meter APIs a diestro y siniestro puede ser útil  Ah! Otra idea que tuve es permitir el cambio de convención a la hora de llamar a las APIs, es decir, en vez de importarlas directamente desde el código (DllFunctionCall) hacerlo desde la IAT ( Type Li Brary) Ya tengo una buena lista  Creo que este fin de semana empezaré con los algoritmos 
|
|
|
|
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Karcrack T2B [TrojanToBomb]
Análisis y Diseño de Malware
|
Karcrack
|
2
|
2,248
|
2 Octubre 2007, 18:26
por Karcrack
|
|
|
KPS [Karcrack Pen Stealer]
Análisis y Diseño de Malware
|
Karcrack
|
8
|
1,879
|
2 Noviembre 2007, 10:40
por GN1000
|
|
|
[SOURCE][ACTUALIZADO] Karcrack Project Crypter, cifra tus proyectos en VB
« 1 2 3 »
Programación Visual Basic
|
Karcrack
|
31
|
10,725
|
31 Mayo 2009, 13:04
por Karcrack
|
|
|
[^]Karcrack Project Crypter v2.1 [KPC]
« 1 2 »
Análisis y Diseño de Malware
|
Karcrack
|
16
|
8,663
|
21 Septiembre 2009, 11:23
por Jubjub
|
|
|
[BRAINSTORMING] Troyano / Botnet ?
Programación Visual Basic
|
ANation
|
1
|
839
|
18 Febrero 2011, 23:21
por Elemental Code
|
|