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 - MCKSys Argentina

#5631
Programación Visual Basic / Re: Permiso en archivos
1 Septiembre 2009, 23:43 PM
Fijate en esto:

Option Explicit
'NTDLL
Private Declare Function RtlAdjustPrivilege Lib "NTDLL" (ByVal Privilege As Long, ByVal bEnablePrivilege As Long, ByVal bCurrentThread As Long, ByRef OldState As Long) As Long

Public Enum PRIVILEGES_ENUM
    SeAssignPrimaryTokenPrivilege = 3       ' Replace a process-level token
    SeAuditPrivilege = 21                   ' Generate security audits.
    SeBackupPrivilege = 17                  ' Grant all file read access (ACL Bypass)
    SeChangeNotifyPrivilege = 23            ' Receive file/folder change notifications
    SeCreateGlobalPrivilege = 30            ' Create global objects
    SeCreatePagefilePrivilege = 15          ' Create pagefile
    SeCreatePermanentPrivilege = 16         ' Create permanent shared object
    SeCreateSymbolicLinkPrivilege = 33      ' (W.VISTA) Create symbolic links
    SeCreateTokenPrivilege = 2              ' Create a token
    SeDebugPrivilege = 20                   ' Open any process (ACL Bypass)
    SeEnableDelegationPrivilege = 27        ' (W.2000) Trust users for delegation
    SeImpersonatePrivilege = 29             ' Enable thread impersonation
    SeIncreaseBasePriorityPrivilege = 14    ' Increase process priority
    SeIncreaseQuotaPrivilege = 5            ' Increase process memory quota
    SeIncreaseWorkingSetPrivilege = 30      ' (W.VISTA) Increase process WS
    SeLoadDriverPrivilege = 10              ' Load/Unload driver
    SeLockMemoryPrivilege = 4               ' Lock pages in memory
    SeMachineAccountPrivilege = 6           ' Create user account
    SeManageVolumePrivilege = 28            ' Manage files on a volume
    SeProfileSingleProcessPrivilege = 13    ' Gather process profiling info
    SeRelabelPrivilege = 32                 ' Modify object label
    SeRemoteShutdownPrivilege = 24          ' Shutdown a remote computer
    SeRestorePrivilege = 18                 ' Grant all file write access (ACL Bypass)
    SeSecurityPrivilege = 8                 ' Manage auditying and security log
    SeShutdownPrivilege = 19                ' Initiate Shutdown
    SeSyncAgentPrivilege = 26               ' (W.2000) Use directory sync services
    SeSystemEnvironmentPrivilege = 22       ' Modify firmware environment values
    SeSystemProfilePrivilege = 11           ' Gather system profiling info
    SeSystemtimePrivilege = 12              ' Change Time
    SeTakeOwnershipPrivilege = 9            ' Change object owner (ACL Bypass)
    SeTcbPrivilege = 7                      ' Idetify as a trusted, protected subsystem
    SeTimeZonePrivilege = 34                ' (W.VISTA) Change time zone
    SeTrustedCredManAccessPrivilege = 31    ' (W.VISTA) Access the Credential Manager (trusted caller)
    SeUndockPrivilege = 25                  ' Remove from docking station
    SeUnsolicitedInputPrivilege = 35        ' (ABSOL33T) Read unsolicited input (from terminal device)
End Enum

Public Function AsignPrivilege(ByVal lPriv As PRIVILEGES_ENUM, Optional ByVal bEnable As Boolean = True, Optional ByVal bThread As Long = 0, Optional ByRef lOldState As Long) As Boolean
    AsignPrivilege = (RtlAdjustPrivilege(lPriv, bEnable, bThread, lOldState) = 0)
End Function


Espero te sea útil  ;)

Saludos!


#5632
Programación Visual Basic / Re: Permiso en archivos
1 Septiembre 2009, 22:34 PM
Nunca lo he usado, pero buscando en San Google me sale esto:


PermEdit grants system access to any running process. Usually it's used for packet editors like WPE Pro and T-Search because sometimes they are unable to target a certain game or it does not appear in the list. It can be used for other programs though.


Por lo que leo, el programa te permite acceder a todos los PROCESOS como SYSTEM. Osea, con el mayor de los privilegios posibles.

No creo que sirva para proteger/otorgar permisos a los archivos...

Saludos!



#5633
Pero si en el artículo que te pasé está!!!  :huh:
Fijate que por ahi dice:

For instance, suppose you want to download a 1000 byte file. Instead of making one call to InternetReadFile with a 1000 byte buffer, you can make 10 calls to InternetReadFIle with 100 byte buffers. This way as each call to InternetReadFile completes, you know the download is another 10 percent complete.


Osea, si quieres descargar un archivo de 1000 bytes, en vez de hacer una llamada a InternetReadFile con un buffer de 1000 bytes, mejor haces 10 llamadas a la API con un buffer de 100 bytes. Así, cada vez que la función termina, vas a saber que se completó el 10% de la descarga.

Ahora, si haces 100 llamadas a la función con un buffer de 10 bytes, vas a saber que se completó el 1% de la descarga.

Espero que ahora te sirva la info... :)

Saludos!


#5634
Si el código que estás ejecutando está en un bucle, entonces el programa no te responderá (por ese motivo: está "trabajando").

Lo que puedes hacer, es poner un DoEvents en el bucle, así, por lo menos, el SO podrá redibujar la ventana de la aplicación.

Aunque lo mejor sería, que le pongas un botón "Cancelar", para cancelar (valga la redundancia  ;D) el proceso que te está colgando máquina.

Eso lo puedes hacer rápido con un DoEvents y una "bandera" que te indidque si el botón "Cancelar" se ha presionado.

Saludos!


#5635
Je,je,je. Si, si. Ya lo sabia.

Hice un "pequeño" loader que "ofusca" el VBHeader y cambia el punto de entrada de los eventos (Mete unos JMPs a la parte final del EXE y despues vuelve :))

Gracias de todas formas...

Saludos!

PD: El link no funciona o yo no se para donde agarrar...


#5636
Esto es mas complicado, pero funciona.

Option Explicit
Dim ManualResize As Boolean

Private Sub Form_Load()
ManualResize = False
End Sub

Private Sub Form_Resize()
If ManualResize Or (Me.WindowState = vbMinimized) Then Exit Sub
ManualResize = True
Me.Width = 4800
Me.Height = 3600
ManualResize = False
End Sub


Ahi dejas fijo el form en 3600x4800. Fijate que hay una bandera (ManualResize) que sirve para saber si el usuario redimensiona el form o lo haces tu.

Aparte, impide que el evento Resize se ejecute cuando cambias el Width y el Height del form con el codigo.

Saludos!


#5637
Fijate por aqui:


http://support.microsoft.com/kb/234913


Saludos!



#5638
Muy bueno!!

Voy a probarlo a ver que tal (Parece que VBDecompiler va a enloquecer  ;))

Saludos!


#5639
Ingeniería Inversa / Re: algun tuto de la IAT
31 Agosto 2009, 22:00 PM
Te doy un ejemplo con LordPE:

1) Abre el EXE con Lord PE.

2) Haz click en "Sections".

3) Aparecen las 2 ó 3 secciones (si tiene recursos) que crea VB por defecto (.text, .data y .rsrc).

4) Haz click con el botón derececho en el listado y selecciona "add section header"

5) Aparecerá una sección nueva: .NewSec.

6) Hazle click con el derecho y selecciona "edit section header"

7) Pon VirtualSize y RawSize en 1000. Dale a "OK" y luego cierra la ventana de secciones.

8) Haz click sobre "Directories" y pon los valores RVA y Size de "BoundImport" a cero. Haz click en "Save" y luego en "OK" (la ventana se cierra).

9) Haz click en "Save" y luego en OK.

10) Abre nuevamente el LordPE y haz click en "Rebuild PE". Selecciona el EXE que acabas de modificar y cuando termine dale a OK.

11) Listo!

Saludos!





#5640
Algo asi:

Private Sub Command1_Click()
Dim strAux As String

'Text1 = texto original
'Text2 = texto de salida (con simbolos)
'Caracteres a reemplazar (ejemplo):
'   "a" = "$"
'   "b" = "&"
'   "c" = "/"
'   etc, etc

'copia texto ingresado
strAux = Text1.Text
'reemplaza todas las ocurrencias de "a" por "$"
strAux = Replace(strAux, "a", "$")
'reemplaza todas las ocurrencias de "b" por "&"
strAux = Replace(strAux, "b", "&")
'reemplaza todas las ocurrencias de "c" por "/"
strAux = Replace(strAux, "c", "/")
'guarda resultado en texto de salida
Text2.Text = strAux
End Sub


Creo que es lo que quieres..

Saludos!