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 - Karcrack

#841
Código (vb) [Seleccionar]
'KERNEL32
Private Declare Function CreateSemaphoreW Lib "KERNEL32" (ByVal lpSemaphoreAttributes As Long, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As Long) As Long

'---------------------------------------------------------------------------------------
' Procedure : DisableMsConfig
' Author    : Karcrack
' Date      : 12/08/2010
'---------------------------------------------------------------------------------------
'
Public Function DisableMsConfig() As Boolean
   Call CreateSemaphoreW(0, 0, 1, StrPtr("MSConfigRunning"))
   DisableMsConfig = (Err.LastDllError = 0)
End Function


Bien cortito y funcional, ejecuta el codigo e intenta abrir el msconfig.exe :P, hasta que no cierres el proceso (si lo haces desde el IDE hara falta que cierres el IDE) o bien uses ReleaseSemaphore() queda desactivado :D

Ale, a divertirse! :P
#842
Mi codigo todavia no es funcional, tiene varios fallos, por ejemplo, en la segunda llamada da errores, debido a que dejo las variables llenas de basura... a ver si consigo mañana algo de tiempo y hago la version raaaapida :P

Buen trabajo Psyke, veo que has exprimido al maximo las neuronas, a mi me dejo con dolor de cabeza :xD, tanto tiempo sin pensar... :-[ :laugh:
#843
It works perfectly, so check what are you trying to run... Make sure it's a valid PE and check wether works properly ...
#845
Si te sientes vago o estas debuggeando un codigo que nadie ha querido identar:
http://www.vbindent.com/

Saludos ;)
#846
El algoritmo se las trae!! Despues de casi una hora he conseguido una version que no optimizada al maximo... aqui esta:
Código (vb) [Seleccionar]
Option Explicit
Option Base 1

Public Static Function IsItLucky(ByVal lNumb As Long) As Boolean
   Dim bvSieve()   As Byte
   Dim lJump       As Long
   Dim lLastNumb   As Long
   Dim i           As Long
   Dim iCount      As Long
   Dim xCount      As Long
   Dim x           As Long
   
   If lNumb = 1 Or lNumb = 3 Then IsItLucky = True: Exit Function
   
   If (lNumb And 1 = 0) Then Exit Function
   
   If lJump = 0 Then lJump = 2
   
   If lLastNumb < lNumb Then
       ReDim Preserve bvSieve(lNumb)
       
       iCount = 0
       xCount = 1
       
       Do
           For i = 1 To lNumb
               If bvSieve(i) = False Then iCount = iCount + 1
               If iCount = lJump Then
                   bvSieve(i) = True
                   iCount = 0
               End If
           Next i
           iCount = 0
           xCount = xCount + 1
           For i = 1 To lNumb
               If bvSieve(i) = False Then
                   x = x + 1
                   If x = xCount Then
                       lJump = i
                       x = 0
                       Exit For
                   End If
               End If
           Next i
       Loop Until xCount > lJump
   End If
   
   IsItLucky = Not bvSieve(lNumb)
   
   lLastNumb = lNumb
End Function



Cita de: [Zero] en 11 Agosto 2010, 02:09 AM
¿Pero sólo se puede en VB o puedes medir mi código en ASM?

Saludos
Si consigues hacerlo en ASM tranquilo que sabras como medir el tiempo con QueryPerformanceCounter >:D  :xD :xD
:laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: No son horas para estar por el foro... madre mia.. habia creado el tema en A&D de Malware, mejor sera que me vaya a dormir :-[  :laugh: :laugh: :laugh:
#847
Cita de: [Zero] en 11 Agosto 2010, 01:12 AM
¿Como medimos el tiempo?  :huh: Interesante propuesta, me pongo a ello  ;D.

Saludos
http://www.xbeat.net/vbspeed/download/CTiming.zip
http://www.xbeat.net/vbspeed/details.htm#How I Time


Lo mas seguro es que si puede Seba revise los tiempos, es recomendable hacer todas las pruebas desde el mismo PC :D
#848
Antes que nada:
http://es.wikipedia.org/wiki/N%C3%BAmero_de_la_suerte

La función ha de recibir el numero (LONG) y devolver True o False (BOOLEAN) en caso de que sea o no un numero de la suerte

El reto es a ver quien consigue hacer la comprobacion mas rapida :)
Es un reto similar a este, pero las propiedades de los numeros de la suerte son distintas


Suerte, y yo voy a preparar ahora mi codigo :)
#849
Segun estas condiciones:

  • 4 cifras (Quitando los ceros a la izquierda)
  • Sus cifras suman 2
  • Formado con 2,1,0
  • Multiple de 11
El resultado seria este:
1001
1100


Algoritmo:
Código (vb) [Seleccionar]
Private Sub Form_Load()
   Dim i       As Long
   
   For i = 0 To 111
       If SumDigits(1001 + i * 11) = 2 Then Debug.Print 1001 + i * 11
   Next i
End Sub

Public Function SumDigits(ByVal lNumb As Long) As Long
   Dim bvTmp() As Byte
   Dim i       As Long
   
   bvTmp = StrConv(Trim$(Str$(lNumb)), vbFromUnicode)
   
   For i = LBound(bvTmp) To UBound(bvTmp)
       SumDigits = SumDigits + (bvTmp(i) - vbKey0)
   Next i
End Function
#850
De todas formas estos nicks no evitan que se cite, si no que deja la respuesta mucho mas ilegible... Es por eso que no se han de permitir...