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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7
51  Programación / .NET (C#, VB.NET, ASP) / Re: Lista de Operadores Matematicos en: 10 Febrero 2021, 23:11 pm
les compartire la solucion que encontre de momento.

Si quieres micro-optimizar ese código entonces quizás podrías tratar de aplicar el ejemplo del usuario Serapis ya que ha invertido tiempo en hacerlo y es más completo o sofisticado que la solución actual que aplicaste, donde su ejemplo de usar Select Case / switch es más apropiado (y también más elegante, dicho sea de paso) que utilizar un bloque de condicionales else + contains ya que tienes un set de símbolos o valores fijos ( https://www.geeksforgeeks.org/switch-vs-else/ ). Además deberías intentar tener presente utilizar la asignación compuesta del operador de suma (+=) en tu variable "calculo" ( https://www.tutorialspoint.com/compound-assignment-operators-in-chash ), lo cual no optimiza el código pero simplifica bastante la comprensión del código fuente.
De todas formas a mi no me convence el enfoque que ambos le dieron, en tu caso fíjate que al final estás tratanto con varias funciones de tratamiento de cadenas de texto como string.replace y string.trim, y luego haciendo distintas operaciones sobre un mismo valor numérico, para eso sería preferible que directamente lo simplificases construyendo un string completo con la expresión matemática y pasárselo a NCalc, pero bueno, por otro lado pienso que cualquier opción o solución es igual de válida mientras el resultado sea exitoso.

pero si , con Ncalc simplifico esto estaria espectacular

Poder se podría siempre y cuando le des el enfoque de construir un string / expresión matemática en lugar de hacerlo como lo estás haciendo actualmente, pero ya no merece la pena mientras tu código actual te funcione de forma exitosa no hay necesidad real de desecharlo o adaptarlo para hacer las cosas de forma distinta. Lo que yo te diría es que intentes considerar NCalc para futuras necesidades, por que te podrá venir de perlas.

Saludos!
52  Sistemas Operativos / Windows / Re: Papel Tapiz con carpeta de imágenes en: 10 Febrero 2021, 01:12 am
En vista de que por otros comentarios tuyos que vi en el foro al parecer utilizas VB.NET, te comento otras dos opciones utilizando directamente la API de Windows.

La primera es mediante una llamada a la función 'SystemParametersInfo' pasándole el valor 'SPI_GETDESKWALLPAPER' (0x0073) al parámetro 'uiAction':

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx
Código
  1. <DllImport("User32.dll", SetLastError:=True, CharSet:=CharSet.Auto, BestFitMapping:=False, ThrowOnUnmappableChar:=True)>
  2. Public Shared Function SystemParametersInfo(action As UInteger,
  3.                                            uiParam As UInteger,
  4.                               <[In]> <Out> pvParam As StringBuilder,
  5.                                            winIni As UInteger
  6. ) As <MarshalAs(UnmanagedType.Bool)> Boolean
  7. End Function

Modo de empleo:
Código
  1. Public Shared Function GetCurrentWallpaperPath() As String
  2.    Dim sb As New System.Text.StringBuilder(capacity:=260)
  3.  
  4.    If Not NativeMethods.SystemParametersInfo(&H73UI, CUInt(sb.Capacity), sb, Nothing) Then
  5.        Throw New Win32Exception([error]:=Marshal.GetLastWin32Error())
  6.    Else
  7.        Return sb.ToString()
  8.    End If
  9. End Function

La segunda es mediante la función 'GetWallpaper' de la interfaz 'IActiveDesktop':

https://msdn.microsoft.com/en-us/library/windows/desktop/bb776357%28v=vs.85%29.aspx
Código
  1. Imports System.Runtime.InteropServices
  2. Imports System.Text
  3.  
  4. Namespace NativeMethods
  5.  
  6.    <ComImport>
  7.    <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>
  8.    <Guid("F490EB00-1240-11D1-9888-006097DEACF9")>
  9.    Public Interface IActiveDesktop
  10.        Function NotImplemented01() As Integer
  11.        <PreserveSig()> Function GetWallpaper(<MarshalAs(UnmanagedType.LPWStr)> buffer As StringBuilder, bufferSize As Integer, reserved As Integer) As Integer
  12.        Function NotImplemented02() As Integer
  13.        Function NotImplemented03() As Integer
  14.        Function NotImplemented04() As Integer
  15.        Function NotImplemented05() As Integer
  16.        Function NotImplemented06() As Integer
  17.        Function NotImplemented07() As Integer
  18.        Function NotImplemented08() As Integer
  19.        Function NotImplemented09() As Integer
  20.        Function NotImplemented10() As Integer
  21.        Function NotImplemented11() As Integer
  22.        Function NotImplemented12() As Integer
  23.        Function NotImplemented13() As Integer
  24.        Function NotImplemented14() As Integer
  25.        Function NotImplemented15() As Integer
  26.        Function NotImplemented16() As Integer
  27.        Function NotImplemented17() As Integer
  28.        Function NotImplemented18() As Integer
  29.    End Interface
  30.  
  31. End Namespace

Modo de empleo:
Código
  1. Public Shared Function GetCurrentWallpaperPath() As String
  2.  
  3.    Dim typeActiveDesktop As Type = Type.GetTypeFromCLSID(New Guid("{75048700-EF1F-11D0-9888-006097DEACF9}"))
  4.    Dim activeDesktop As IActiveDesktop = DirectCast(Activator.CreateInstance(typeActiveDesktop), IActiveDesktop)
  5.    Dim sb As New System.Text.StringBuilder(capacity:=260)
  6.  
  7.    Dim result As Integer = activeDesktop.GetWallpaper(sb, sb.Capacity, 0)
  8.    If (result <> 0) Then
  9.        Marshal.ThrowExceptionForHR(result)
  10.    End If
  11.  
  12.    Marshal.ReleaseComObject(activeDesktop)
  13.    Return sb.ToString()
  14. End Function
53  Programación / .NET (C#, VB.NET, ASP) / Re: Lista de Operadores Matematicos en: 9 Febrero 2021, 21:42 pm
No pierdas el tiempo ni reinventes la rueda, utiliza un evaluador de expresiones matemáticas. O bien eliges utilizar la función Eval de javascript (mediante el motor de JS de .NET), o bien eliges utilizar la librería de terceros NCalc:


Eval y NCalc son metodologías que implican un tiempo lento de inicialización, pero ambas son robustas, a prueba de fallos. Aquí puedes ver el sofisticado procedimiento de análisis o data parsing y compilación de una expresión matemática con NCalc: https://github.com/ncalc/.../NCalcParser. En general, evaluar expresiones con NCalc es bastante más rápido que con Eval, esto sobre todo se nota al medir el tiempo de ejecución cuando llevamos a cabo muchas operaciones de forma consecutivas en búcle, y en fin, es una solución open-source.

Ejemplo propio en VB.NET para validar sintaxis, y evaluar expresión:

Código
  1. ''' ----------------------------------------------------------------------------------------------------
  2. ''' <summary>
  3. ''' Validates the syntax of an arithmetic expression.
  4. ''' </summary>
  5. ''' ----------------------------------------------------------------------------------------------------
  6. ''' <example> This is a code example.
  7. ''' <code language="VB.NET">
  8. ''' Dim expr As String = "1 + ABC"
  9. ''' Dim isValid As Boolean = ValidateExpression(expr)
  10. ''' </code>
  11. ''' </example>
  12. ''' ----------------------------------------------------------------------------------------------------
  13. ''' <returns>
  14. ''' <see langword="True"/> if the arithmetic expression does not contain syntax errors,
  15. ''' otherwise, <see langword="False"/>.
  16. ''' </returns>
  17. ''' ----------------------------------------------------------------------------------------------------
  18. <DebuggerStepThrough>
  19. Public Shared Function ValidateExpression(expr As String) As Boolean
  20.  
  21.    Dim calc As New Global.NCalc.Expression(expr)
  22.  
  23.    If calc.HasErrors() Then
  24.        Return False
  25.    End If
  26.  
  27.    Try
  28.        Decimal.TryParse(CStr(calc.Evaluate()), New Decimal)
  29.        Return True
  30.  
  31.    Catch
  32.        Return False
  33.  
  34.    End Try
  35.  
  36. End Function
  37.  

Código
  1. ''' ----------------------------------------------------------------------------------------------------
  2. ''' <summary>
  3. ''' Evaluate and return the result of an arithmetic expression.
  4. ''' </summary>
  5. ''' ----------------------------------------------------------------------------------------------------
  6. ''' <example> This is a code example.
  7. ''' <code language="VB.NET">
  8. ''' Dim expr As String = "(1 + (2 - 2)) * (100 / 2.5)" ' = 40
  9. ''' Dim result As Decimal = EvaluateExpression(expr)
  10. ''' </code>
  11. ''' </example>
  12. ''' ----------------------------------------------------------------------------------------------------
  13. ''' <returns>
  14. ''' The resulting value.
  15. ''' </returns>
  16. ''' ----------------------------------------------------------------------------------------------------
  17. ''' <exception cref="Global.NCalc.EvaluationException">
  18. ''' </exception>
  19. ''' ----------------------------------------------------------------------------------------------------
  20. <DebuggerStepThrough>
  21. Public Shared Function EvaluateExpression(expr As String) As Decimal
  22.  
  23.    Dim calc As New Global.NCalc.Expression(expr)
  24.    Dim result As Decimal
  25.  
  26.    If calc.HasErrors() Then
  27.        Throw New Global.NCalc.EvaluationException(message:=calc.Error)
  28.  
  29.    Else
  30.        Try
  31.            result = CDec(calc.Evaluate())
  32.            Return result
  33.  
  34.        Catch ex As Global.NCalc.EvaluationException
  35.            Throw
  36.  
  37.        Catch ex As ArgumentException
  38.            Throw New Global.NCalc.EvaluationException(message:=ex.Message)
  39.  
  40.        Catch ex As Exception
  41.            Throw
  42.  
  43.        End Try
  44.  
  45.    End If
  46.  
  47. End Function

Importante: NCalc no se limita solamente a evaluar expresiones de tipos numéricos, sino que además puede evaluar otros tipos como DateTime y comparaciones de caracteres entre strings, pero las funciones ValidateExpression y EvaluateExpression del código de arriba funcionarán de forma correcta solamente con los tipos simples numéricos, es decir integrales o de punto flotante ( https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-types#built-in-value-types ) ya que es el uso que se le pretende dar.

Si prefieres hacerte el guiso por ti mismo, aquí tienes otras alternativas en C# (ordenados por fecha de antiguedad):

Saludos.
54  Programación / .NET (C#, VB.NET, ASP) / Re: [Source Code] AmongUS.MOD | Multi Cheat en: 9 Febrero 2021, 09:00 am
en mi epoca del 1.6 alrededor del 2000 se usaba el cdHack

Que recuerdos, yo también lo jugaba por aquel año, y lo que me asusté cuando me hicieron el "hack" del CD por primera vez (yo no tenía ni idea de programación por aquél entonces) el admin de una partida amenazándome con hackear mi PC xD. Años más tarde descubrí que se trataba de cierta vulnerabilidad.

Consulta, como es el paso a paso para poder llegar a hacer este tipo de hacks?

Paso a paso nadie te va a enseñar a menos que pagues $$$ por el preciado tiempo de enseñanzas. **Aincrad** empezó sin tener absolutamente ni idea de nada sobre este tema, formulando preguntas en este foro, obteniendo respuestas y ayuda (sobre todo de un tal Elektro, cof, cof) y obteniendo así más y más conocimiento poco a poco. También aprendió por su cuenta investigando y a base de ensayo y error, claro está, y cada día aprenderá algo nuevo por que así es el mundo de la informática y de la programación. Es un proceso largo de aprendizaje.

Cuando se trata de cheats / trainers para juegos online o mejor dicho para modos de juego multijugador online, a no ser que encuentres y utilices una API de terceros como en este caso la mencionada "AmongUsMemory" ( https://github.com/shlifedev/AmongUsMemory ) requerirás conocimientos muy avanzados de ing. inversa para destripar por así decirlo todos los valores y estructuras del juego, y luego sabiendo todo eso poder desarrollar un HUD como el de **Aincrad** para mostrar la info de la partida.

**Aincrad** utiliza esta API de terceros como ya viste, primero por que existe y puede usarla en su beneficio, y segundo por que él no tiene el suficiente conocimiento de ing. inversa (por cierto, yo tampoco, hay que estudiar el tema años hasta tener un nivel avanzado y no estoy por la labor de hacerlo) como para desarrollar y reproducir las características de esa misma API por su cuenta, con esto quiero decir que si realmente te interesa hacer algo así en profundidad y desde cero sin depender del trabajo / APIs de otras personas... entonces debes aprender mucho de ing. inversa.

El desarrollo de la interfaz de usuario con o sin semi transparencia es la parte más sencilla (aunque eso no significa que no requiera mucho empeño hacerla, si se quiere hacer bien). Puedes usar la librería SharpDX (wrapper de DirectX) por ejemplo, o utilizar otras metodologías. Los controles de la UI del programa de **Aincrad** son personalizados y de terceros también ( https://gunaframework.com/features/ ).

Como ves no consiste en desarrollarlo absolutamente todo por uno mismo, sino en apoyarse en la utilización de código y recursos y herramientas y APIs y lo que sea de terceros para hacerlo. No quiero parecer condescendiente, pero es obvio que el ser humano trabaja mejor (o al menos más rápido) como sociedad colectiva, y en el mundo de la programación y de la programación bajo la plataforma de .NET Framework existe una infinidad de librerias / controles / herramientas a tu disposición que han sido desarrolladas por otros programadores, tanto gratuitas como comerciales, y el hecho de apropiarse de dichas herramientas (con permiso y con una mención al autor) no es algo poco profesional sino todo lo contrario, es una gran ventaja y una virtud el saber encontrar y utilizar dichas herramientas para optimizar el tiempo de desarrollo y el resultado final.



Por cierto, @**Aincrad**, es todo un detalle que salga el nombre de ElektroStudios en los colaboradores del proyecto. Seguro que esté donde esté te manda un saludo y te lo agradece.

Saludos
55  Foros Generales / Foro Libre / Re: Mónico Sánchez, el inventor que quiso convertir un pueblo de Ciudad Real en el Silicon Valley de principios del sigl en: 7 Febrero 2021, 14:14 pm
¿Pero Mónico es el masculino de Mónica, o es un nombre extranjero?. El nombre es muy raro y mi inquietud muy grande.
56  Foros Generales / Foro Libre / Re: Así será la misión de la NASA a 16-Psyche, el asteroide que 'vale' 74 billones de dólares en: 7 Febrero 2021, 14:03 pm
Citar
Pero no, el objetivo no es extraer el oro y traerlo de vuelta a la Tierra, sino que la misión es mucho más científica: investigar la composición de su núcleo, cómo se formó y, con ello, obtener resultados valiosos sobre cómo nacieron la Tierra y el resto de planetas.

No puedo parar de reir. Cada vez que sale alguna noticia sobre NASA, es un chiste en si mismo.

Sigo esperando a que se manifiesten sobre esa misión de colonizar la atmosfera de Venus montando una ciudad flotante de humanos usando globos en las nubes, nos lo prometieron para el año 2022...

https://hipertextual.com/2014/12/venus-colonizacion
https://www.xlsemanal.com/conocer/ciencia/20201023/venus-vida-planeta-conquista-espacio-misiones.html

Seguro que el año que viene se pronunciarán al respecto. ¡SEGURO!.

Ahora en serio, basura de agencia espacial la NASA que solo publica chorradas para llamar la atención y luego no hacen nada de lo que dicen, NADA. Buitres que prometen hacer (nuevos) logros por la humanidad solo para seguir recibiendo dinero de inversionistas y subvencionistas.
57  Foros Generales / Foro Libre / Re: Porque no vivo el presente y me estanco siempre en el pasado? (Hilo muy serio) Hilo muy serio y que me preocupa. en: 7 Febrero 2021, 13:25 pm
Recuerdo algo que te dijeron Machacador y Simorg... y creo que tuvieron mucha razón...
https://foro.elhacker.net/foro_libre/os_han_rechazado_algunas_vez_o_mas_veces_en_la_vida_sed_sinceros-t506143.0.html;msg2226189#msg2226189

Hilos como este creo que sobran y son absurdos (te delatan):
https://foro.elhacker.net/foro_libre/quereis_que_me_vaya_del_foro_soy_una_molestia_para_los_demas_usuarios-t507595.0.html;msg2230986#msg2230986

Tienes una muy buena vida a pesar de la disminuición la cual aparentemente no te genera problemas físicos ni sociales, entonces, ¿de que te quejas?, ¿a que vienes aquí a sentirte el centro de atención?, ¿te gusta manipular a los demás?...

Personas manipuladoras: 8 características que las delatan
58  Foros Generales / Dudas Generales / Cuenta de Google / Youtube se desloguea al minuto en: 5 Febrero 2021, 04:53 am
Recientemente he creado una nueva cuenta de gmail, y desde entonces tengo el siguiente problema, cuando inicio sesión en Youtube, la sesión se desloguea de forma súbita casi al instante, bueno, como al minuto o a los 2 minutos. Y la extensión que utilizo en el navegador para ver el correo, X-notifier, siempre tiene mi sesión de gmail cerrada por culpa de esto.

No entiendo por que puede estar pasando esto. Antes de que esto me ocurriese, mi sesión en Youtube y en la extensión del correo siempre estaba activa las 24hrs a menos que yo la cerrase de forma intencionada.

He probado lo básico, eliminar todas las cookies relacionadas con google y youtube, y usar ccleaner para hacer lo mismo, y desactivar la extensión del correo en el navegador, pero el problema persiste. Y esto no es que sea de gran ayuda:
https://support.google.com/accounts/answer/54490?hl=en

¿Alguna idea?.

Por si sirve de algo, utilizo Firefox. EDITO: actualizado a la versión estable más reciente

EDITO: en Chrome me funciona bien, la sesión se mantiene abierta.



Al final ha resultado ser un problema con esta extensión del correo, si la mantengo desactivada todo funciona Ok. Ni idea de como solucionarlo. Solicitaré ayuda en el sitio apropiado (foro de X-Notifier)

Saludos!



[MOD] No hacer doble post, usar "modificar" para añadir comentarios.
59  Foros Generales / Foro Libre / Re: La NASA calculó que el asteroide que podría impactar contra la Tierra en 2022 tiene el poder de 150 bombas de Hirosh en: 4 Febrero 2021, 22:43 pm
Bueno tu puedes leer lo que te de la gana nadie te obliga a leer lo que comparto yo no tengo culpa que sea titulares alarmistas, eso lo pone los periodistas a mi como me gusta todo el tema de ciencia, astronomía y tecnología y todo tipo de noticias curiosas y que llama la atención pues la intento compartir, a Elecktro estos temas le gustaba pero siempre terminaba criticando a la Nasa este donde estes si me lees un saludo se que estos temas te gustaban.

Le das la vuelta a lo que dije para malinterpretarlo y quedarte con un aspecto negativo de mis palabras, pero en realidad mi mensaje era positivo, o al menos esa era mi intención. No se, quizás es mi forma de expresarme, a ver si así se despejan las dudas: aquí tienes un follower de tus noticias, El_Andaluz, GRACIAS por compartir estas noticias, son de mi agrado... pero tengo que quejarme de NASA si o si xD.

Por lo que comentas de ese tal Elecktro, parece que el man también sabe lo que se hace, a la NASA no hay que dejarle ni respirar, son unos incompetentes y mentirosos, y no digo más por que podría estar escribiendo 50 lineas más hasta gastar todos los adjetivos despectivos del diccionario.

Saludos!
60  Programación / .NET (C#, VB.NET, ASP) / Re: Pasar esto como Parametro InitializeComponent(); en: 4 Febrero 2021, 22:32 pm
El método 'InitializeComponent' no tiene parámetros ni devuelve un valor, así que puedes utilizar la clase 'System.Action':

Código
  1. private void TestMethod(Action @delegate){
  2.    @delegate.Method.Invoke(this, null);
  3. }
...
Código
  1. TestMethod(this.InitializeComponent);

Pero deberías explicar por que crees necesario pasar la referencia de un método como parámetro a otro método, ya que como te han dicho quizás haya una solución más apropiada a tus necesidades, puesto que a simple vista y sin más info por tu parte, el enfoque que le estás dando parece innecesario.

Saludos.
Páginas: 1 2 3 4 5 [6] 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines