elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 [755] 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 ... 1236
7541  Programación / Scripting / Re: Proyecto Monster Girl Quest Kirito Adventure [Python,Juego] en: 20 Enero 2014, 15:08 pm
Este tema ha sido añadido al Recopliatorio de Posts importantes sobre Scripting

Gracias por compartir.
7542  Programación / .NET (C#, VB.NET, ASP) / Re: Pasar variable al abrir form. en: 20 Enero 2014, 13:34 pm
Se me ha ocurrido otro metodo chapuzas que es iniciar el form 'Invisible' al cargar el programa forzando a cargarse pero me gustaria hacer las cosas bien.

Vaya, pues eso es lo que te iba a decir yo xD.

Teniendo en cuenta que en cada inicio la aplicación debes instanciar ese form una primera vez para que todos los controles se dibujen y tal ...yo creo que lo que llamas método chapuzas en realidad es la única manera de aumentar la velocidad de carga. aunque, bueno, mi especialidad no es el rendimiento de memoria, sólamente hablo por lógica ya que lo innecesario no se carga en memoria a menos que sea bajo demanda.

Esto es una de esas cosas que deberían hacerse al cargar la aplicación, es decir en el evento Startup.

Y si tienes varios forms que deseas mantener "cargados" entonces podrías valerte de un Stack de forms para ir precargándolos cuando sea necesario.

Código
  1. Public Class Form1
  2.  
  3.    Public Shared PreloadForms As New Stack(Of Form)
  4.  
  5.    Private Shadows Sub Shown() Handles MyBase.Shown
  6.        ShowForm()
  7.    End Sub
  8.  
  9.    Private Sub ShowForm()
  10.        ' Muestro el Formulario y lo elimino del stack.
  11.        PreloadForms.Pop.Show()
  12.    End Sub
  13.  
  14. End Class

Código
  1. Imports WindowsApplication... .Form1
  2.  
  3. Namespace My
  4.  
  5.    Friend Class MyApplication
  6.  
  7.        Private Shadows Sub Startup() Handles MyBase.Startup
  8.  
  9.            ' Añado el form al stack, es decir, lo precargo.
  10.            PreloadForms.Push(My.Forms.Form2)
  11.  
  12.            ' Información adicional.
  13.            Debug.WriteLine(String.Format("{0} is preloaded", Form1.PreloadForms.Peek.Name))
  14.  
  15.        End Sub
  16.  
  17.    End Class
  18.  
  19. End Namespace

Y aparte de eso puedes precompilar tu aplicación usando NGEN.

Saludos
7543  Programación / Desarrollo Web / Re: Duda con xquery en: 20 Enero 2014, 04:19 am
Muevo el tema, y paciencia ...segúramente en esta sección tengas más suerte.

Saludos.
7544  Programación / Scripting / MOVIDO: Duda con xquery en: 20 Enero 2014, 04:18 am
El tema ha sido movido a Desarrollo Web.

http://foro.elhacker.net/index.php?topic=407065.0
7545  Programación / .NET (C#, VB.NET, ASP) / Re: Pasar variable al abrir form. en: 20 Enero 2014, 03:58 am
No hay alguna manera mejor de llevar a cabo esto?

¿Porque utilizas reflection para instanciar un form que ya es accesible desde el propio ensamblado para modificar una propiedad?.

...a menos que existan otros aspectos del problema que no hayas detallado o que yo no haya entedido y te obliguen a usar Reflection, no es necesario más que esto:

Código
  1. Chat.Text = contacto
  2. Chat.Show()

Aparte, como alternativa (aunque innecesaria dado el caso), quizás podrías valerte del constructor del form:

Código
  1. Public Class ChatForm
  2.  
  3.    Public Sub New(ByVal Contact As String)
  4.  
  5.        InitializeComponent()
  6.        MyBase.Text = Contact
  7.  
  8.    End Sub
  9.  
  10.    Private Shadows Sub Load(sender As Object, e As EventArgs) Handles MyBase.Load
  11.  
  12.        MsgBox(MyBase.Text)
  13.  
  14.    End Sub
  15.  
  16. End Class

Código
  1. Public Class Form1
  2.  
  3.    Private WithEvents ChatForm As Form = Nothing
  4.  
  5.    Private Sub ShowForm()
  6.  
  7.        ChatForm = New ChatForm("Mi contacto")
  8.        ChatForm.Show()
  9.  
  10.    End Sub
  11.  
  12. End Class

PD: No se si es eso lo que andas buscando.

Saludos
7546  Foros Generales / Foro Libre / Re: bromas dirigidas a lammers en: 19 Enero 2014, 21:31 pm
Creo que comportarse de manera Troll con un Lammer es ponerse al mismo nivel (de incompetencia).

A mi no me haría gracia ver como se trata así a la gente, ¿y encima en un subforo dedicado a Lammers? ...me parece algo ridículo y digno de ban a cualquiera que comentase en ese subforo para trollear, pues bastante pena da ya la ignorancia de algunas personas (más conocidas como lammers), pero más pena daría que la gente que tiene más sabiduria los tratase con bromas lammers, joder, un poco de ética.

Recordemos que aquí y en el mundo entero, quien más y quien menos, todos hemos tenido momentos de ignorancia, pues no se puede saber todo sobre todos los temas ...así que todos hemos sido Lammers, y siempre lo seguiremos siendo en un sentido u otro.

Ser lammer y creerse el mejor, yo lo veo dos cosas distintas aunque para muchos un Lammer solo son aquellas personas que son ignorantes en el mundo del Hacking pero se creen las mejores,
y no sé ...pienso que lo mejor que pueden hacer por un lammer es explicarle porque es ignorante para que deje de serlo (siempre que valga la pena explicarselo, claro, porque hay cada Lammer que es mejor dejarlo feliz en su ignorancia).

Me parece muy mal esta iniciativa @CrazyKenny.

Saludos!
7547  Programación / Scripting / Re: Variables en BATCH en: 19 Enero 2014, 19:39 pm
Por ultimo, y, si no es mucho pedir y/o mucha molestia, claro esta, ¿podría utilizar los datos que has expuesto y/o los comandos del administrador de tareas que hay indicados en el enlace del otro mensaje que has puesto?.

No se exáctamente a que otro mensaje te refieres, pero si, sea como sea ...claro que puedes.

Si, claro que puedes usar lo que te haya interesado del script del Virulator.


¿Qué métodos hay para que un virus se ejecute automáticamente al entrar el pendrive donde esta almacenado en un ordenador? (aparte del autorun.ini claro esta).

La cuestión es que (en Windows 7 y 8, supongo que te refieres a eso) no existe ningún método por software, la característica AutoRun está complétamente deshabilitada en Windows, no existe, por ende no hay nada que puedas lograr.

EDITO: Y el único modo en WinXP es usar el Autorun.ini, que además hay que tener en cuenta que el servicio de AutoPlay debe estar activado en el sistema donde se ejecute ese Pendrive, cosa que depende únicamente del usuario de ese PC y puede desactivar en cualquier momento o cambiar los parámetros para no ejecutar los autoruns en dispositivos extraibles.

Encontré un USB camaleónico por si te interesa (aunque el método es bastante distinto a lo que comenté de hacerse pasar por un CDROM):
~> Custom USB sticks bypassing Windows 7/8′s AutoRun protection

Saludos!
7548  Programación / Scripting / Re: Variables en BATCH en: 19 Enero 2014, 19:10 pm
Bien, vamos por partes

Lo primero de todo, el método de autoejecutar un archivo desde un pendrive es algo prehistórico ya que a partir de Windows vista (o fue desde windows 7, no recuerdo bien) quedó totálmente obsoleto, Microsoft eliminó por completo la capacidad de poder ejecutar un autorun desde un dispositivo extraible por los motivos de seguridad que ya te puedes imaginar, así que en estos tiempos que corren solo puedes escribir un autorun para dispositivos de CD-ROM.

...Aunque, por otro lado, habian (no se si aún existen) dispositivos USB que su hardware se hacia pasar por un dispositivo de CDROM, pudiendo así engañar al sistema Windows para iniciar un autorun desde ese pendrive "camaleónico". para que te hagas una idea, como esos USB de los chinos de eBay que dicen tener más capacidad de almacenamiento de la que reálmente tienen.

En resumen, el autorun solo te va a servir para los que usen Windows XP o inferior, no vale la pena experimentar con métodos antiguos.



Bien, sobre autoejecutar un archivo desde el registro, debes saber dos cosas importantes:

1. Es un método facil y efectivo, lo que implica que a su vez sea igual de facil de detectar como mirar en la lista de procesos que se ejecutan al inicio de Windows, e igual de facil es de eliminar.

2. La mayoría de gente que usa esa técnica no saben que tiene sus limitaciones, la limitación más grande es que este archivo no se podrá ejecutar si el usuario inicia sesión en modo seguro, claro ...eso es lo que pasa si se juega a hacer "virus" sin nisiquiera conocer apenas como funciona un sistema operativo. aunque esto se puede llegar a conseguir de forma facil.


A continuación te detallaré (no mucho) los dos puntos improtantes que acabo de mencionar:

1.
El registro de windows proporciona una clave para indicar ciertos archivos que se deben ejecutar al inicio del sistema,
Código:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Código:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

La raíz HKEY_LOCAL_MACHINE (también conocida como HKLM) hace referencia a todos los usuarios del sistema, es decir, si añades la subclave para iniciar tu programa en esa clave, tu programa se iniciará en la sesión de todos los usuarios.

La raíz HKEY_CURRENT_USER (también conocida como HKCU) hace referencia a la sesión del usuario actual, es decir, si añades tu programa ahí se iniciará solamente en la sesión del usuario actual.

Aquí puedes ver varios ejemplos de como añadir un programa a esta clave, usando Batch:

Código
  1. :: Converted with REG2BAT v2.1 by Elektro
  2.  
  3. @Echo OFF
  4.  
  5. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Hot Corners" /T "REG_SZ" /D "Wscript.exe \"C:\Program Files (x86)\Hot Corners\RUN.vbs"" /F
  6. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "MiniBin" /T "REG_SZ" /D "C:\Program Files (x86)\MiniBin\minibin.exe" /F
  7. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Rocket Dock" /T "REG_SZ" /D "C:\Program Files (x86)\RocketDock\RocketDock.exe" /F
  8. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Sidebar" /T "REG_SZ" /D "C:\Program Files\Windows Sidebar\sidebar.exe /autoRun" /F
  9. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Sizer" /T "REG_SZ" /D "C:\Program Files (x86)\Sizer\Sizer.exe" /F
  10. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Automatic wallpaper Changer" /T "REG_SZ" /D "C:\Program Files\Automatic Wallpaper Changer\Automatic wallpaper Changer.exe" /F
  11.  

Examinemos una orden cualquiera del script que he msotrado:
Cita de: Elektro
Código
  1. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "MiniBin" /T "REG_SZ" /D "C:\Program Files (x86)\MiniBin\minibin.exe" /F

El valor del parámetro ADD del comando REG es HKCU\Software\Microsoft\Windows\CurrentVersion\Run, esto indica la subclave donde agregar el nuevo valor.

El valor del parámetro /V (o Value) indica el nomrbe del nuevo valor, en este caso MiniBin

El valor del parámetro /T (o Type) indica el tipo de datos del valor (pues puede ser un valor de tipo String, o binario, etc) en este caso es REG_SZ que hace referencia a tipo String (texto) y es el valor por defecto (es decir, no es necesario especiicar el parámetro /T si los datos son de tipo texto).

Y por último, el valor del parámetro /D (o Data) indica los datos del valor, en este caso es la ubicación del programa que queremos ejecutar C:\Program Files (x86)\MiniBin\minibin.exe

Como nota adicional, puedes usar variables de entorno ( %WINDIR%,  %APPDATA%, etc) si estableces el tipo de subclave a REG_EXPAND_SZ, si el valor es de tipo REG_SZ no te va a funcionar la variable de entorno que escribas (adentro de los datos del valor me refiero, no en el script Batch).
 


2.
Ya sabes como añadir tu programa al inicio de Windows, ahora, ¿Como evitar que el programa no se inicie en modo seguro?

Bueno, por pura lógica si Windows tiene un modo de inicio que se denomina "Modo seguro", es por una buena razón, ya que sólamente se cargan los drivers y otros elementos esenciales del sistema operativo, omitiendo así cualquier programa innecesario al cargar windows, como por ejemplo, los programas que agreguemos al registro para que se ejecuten al inicio de sesión.

Pero esto es algo tan sencillo de evitar como añadir el símbolo * al nombre del valor, por ejemplo:

Código
  1. REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "*Programa" /T "REG_SZ" /D "C:\MiPrograma.exe" /F

El prefijo * se denomina WildCard, en casi todos los comandos de Batch se suele utilizar para indicar un conjunto de varios elementos (por ejemplo, si tenemos un archivo que se llama Archivo1.txt y otro archivo que se llama Archivo2.txt, podemos recopilar todos los archivos utilizando la expresión Archivo*.txt), y en este caso indica que el programa debe seguir ejecutandose incluso en modo seguro en todos los modos de inicio del sistema.

Y creo que con esto, ya queda todo dicho.

Si tienes dudas pregunta.

Saludos
7549  Programación / Scripting / Re: Variables en BATCH en: 19 Enero 2014, 17:19 pm
¿os parecería bien si aporto dicho código en la sección de análisis y diseño de malware, ya que estamos?.

Eres libre de decidir donde postear dicho aporte, pero si quieres mi opinión (y consejo), no lo postees en la sección de análisis de Malware, pues aunque tu todavía no te des cuenta de ello Batch no se puede considerar un lenguaje de programación, mucho menos una herramienta de Malwara o de virus, postear códigos Batch en la sección de Malwarw sería algo que suelen hacer los más noobs (no te insulto ni tampoco intento ofender, sólamente te intento explicar los motivos), si tienes un código escrito en Batch, lo más correcto sería que lo posteases aquí, pero como ya digo, eres libre de tomar esa decisión.

PD: Quizás este aporte te ayude a conocer otras formas de hacer bombas lógicas en Batch como el copiado masivo de archivos ~> by Elektro - Virulator 1.0c

Saludos!
7550  Programación / .NET (C#, VB.NET, ASP) / Re: Como puedo saber los números que faltan dentro del rango ? en: 19 Enero 2014, 17:01 pm
Si Elektro si la función ( pondré corto los números)  me da"  2, 4 ,6,8, 9 " y el rango es de 0 al 10  entonces me faltaría el " 1,3, 5, 7 "  ademas de mostrar "  2, 4 ,6,8, 9 "  también quiero mostrar " 1,3, 5, 7 " pero en otro listbox

Eso es algo facil de hacer ya sea usando un FOR o usando LINQ, pero como no encontré nada en Google para mostrarte diréctamente un ejemplo parecido al problema que describiste, yo mismo hice una función de uso genérico, aquí la tienes:

Código
  1.  
  2.    ' Get Numbers Not In Range.
  3.    ' ( By Elektro )
  4.    '
  5.    ' Usage Examples:
  6.    '
  7.    ' MsgBox(String.Join(", ", GetNumbersNotInRange({1, 3, 5, 7, 9}, 0, 10).ToArray)) ' Result: 0, 2, 4, 6, 8, 10
  8.    '
  9.    ''' <summary>
  10.    ''' Given a numeric collection, gets all the numbers which are not in a specified range.
  11.    ''' </summary>
  12.    ''' <param name="NumbersInRange">Indicates the numbers collection which are in range.</param>
  13.    ''' <param name="MinRange">Indicates the minimum range.</param>
  14.    ''' <param name="MaxRange">Indicates the maximum range.</param>
  15.    ''' <returns>System.Collections.Generic.IEnumerable(Of System.Int32).</returns>
  16.    Private Function GetNumbersNotInRange(ByVal NumbersInRange As IEnumerable(Of Integer),
  17.                                          ByVal MinRange As Integer,
  18.                                          ByVal MaxRange As Integer) As IEnumerable(Of Integer)
  19.  
  20.        Return From Number As Integer
  21.               In Enumerable.Range(MinRange, MaxRange + 1)
  22.               Where Not NumbersInRange.Contains(Number)
  23.  
  24.    End Function

Ejemplo de uso:

Código
  1.    Private Sub Test(sender As Object, e As EventArgs) Handles MyBase.Shown
  2.  
  3.        Dim NumbersInRange As Integer() = {2, 4, 6, 8, 9}
  4.  
  5.        Dim NumbersNotInRange As Integer() = GetNumbersNotInRange(NumbersInRange, 0, 10).ToArray
  6.  
  7.        MsgBox(String.Join(", ", NumbersNotInRange)) ' Result: 0, 1, 3, 5, 7, 10
  8.  
  9.    End Sub
Saludos
Páginas: 1 ... 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 [755] 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines