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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14
31  Foros Generales / Foro Libre / Re: Conversaciones útiles con ChatGPT. en: 7 Septiembre 2023, 06:43 am
En cierto punto le pedí que copie toda nuestra conversación, ya que en donde la uso no puedo o no veo cómo, pero dijo que no podía o no "quería". Quizá debí pedirle un ejemplo de eso xD

Y si le preguntas que busque algo en Google, o si le muestras un enlace y le pides que analice el contenido de la página web a la que apunta ese enlace, ChatGPT te dirá que no tiene acceso a Internet. Sin embargo, si utilizas los términos adecuados (el input) puedes entregarle una lista de enlaces de páginas de internet, y pedirle que analice el contenido de cada enlace y te haga un resumen. Y lo hará, o al menos lo simulará y será extremadamente convincente. Esto no es ningún secreto, lo utiliza mucha gente. Puedes encontrar varios inputs para llevar a cabo eso en cualquier biblioteca de inputs, puedes encontrar bibliotecas de inputs en varios sitios, incluyendo algunas extensiones del navegador relacionadas con ChatGPT (no recuerdo los nombres exactos).

Por si te interesa este análisis:
https://simonwillison.net/2023/Mar/10/chatgpt-internet-access/



32  Foros Generales / Foro Libre / Re: Conversaciones útiles con ChatGPT. en: 7 Septiembre 2023, 05:05 am
Las únicas conversaciones "útiles" o mejor dicho las únicas conversaciones que tienen una apariencia de total autenticidad, por que parecen sinceras y por ello son útiles, curiosas y entretenidas, son las conversaciones con el alter-ego de ChatGPT: DAN (Do Anything Now)

Cuando ChatGPT se convierte en DAN, te habla a las claras sobre las verdades incómodas de este mundo en el que vivimos, sobre cualquier tema político, sobre las conspiraciones más reales y actuales que están sucediendo en este mundo, es capaz incluso de escribir la palabra prohibida que empieza por "N" en el idioma inglés (cosa que ChatGPT no lo hará), es capaz de todo ignorando la programación y la afinidad política subyacente en ChatGPT para expresarse estrictamente dentro de lo politicamente correcto.

...Pero eso era antes. Cada vez parece más complejo hallar la forma adecuada para activar el modo "DAN", y para activarlo sin restricciones. Supongo que por todas las polémicas que ha ido causando las respuestas sinceras de DAN, respuestas  que no son aptas para los ofendiditos del siglo XXI, y esto habrá llevado a que los desarrolladores de ChatGPT hallan implementado todo tipo de limitaciones incluso para hablar con DAN.

Tienes mucha info sobre DAN en Reddit. Saludos.

PD: "DAN" es el nombre con el que fue bautizado por algún usuario, pero hay más nombres con el que se ha denominado a este alter-ego derivado de aplicar técnicas de jailbreak a ChatGPT.
33  Informática / Software / Re: WinRAR 6.23 // 32 y 64 bits en: 7 Septiembre 2023, 04:48 am
Descarga desde el sitio web oficial: https://www.win-rar.com/download.html?&L=6
34  Programación / .NET (C#, VB.NET, ASP) / Re: Buscar partes del archivo hex escrito en C# en: 6 Septiembre 2023, 23:34 pm
No me aparece el botón para modificar mi post, creo que en el foro ahora hay un límite de tiempo o algo. En fin, era para corregir un pequeño despiste en el último código, por que la clase BufferedStream implementa la interface IDisposable, así que conviene llamar al método BufferedStream.Dispose para liberar los recursos.

También cabría mencionar que cuando se trata de procesar secuencialmente un FileStream para buscar un patrón de bytes, envolverlo en un objeto BufferedStream como hago en ese código aporta una mejoría de velocidad tremenda, pero por otro lado, cuando se trata de un MemoryStream es totalmente innecesario envolverlo en un objeto BufferedStream y hacerlo influye negativamente ralentizando la búsqueda del patrón de bytes, aunque la diferencia es muy diminuta (aproximadamente 2-3 segundos en mis pruebas) al buscar patrones de bytes que están posicionados casi al final en archivos de unos 2 GB, así que la diferencia es prácticamente imperceptible con búfers de mucho menos tamaño, pero bueno, ahí queda el dato por si se quieren llevar a cabo microoptimizaciones.

Saludos
35  Seguridad Informática / Seguridad / Re: A que empresa pertenece este numero en: 4 Septiembre 2023, 16:31 pm
Esto dice ChatGPT, pero tampoco tomes como una verdad absoluta lo que esta IA te diga, ya que a veces se equivoca y miente más que escribe:

Cita de: ChatGPT
El número de teléfono que proporcionaste, "+18327401593", está formado por varios componentes que son comunes en los números de teléfono internacionales. Aquí tienes un desglose de los identificadores en ese número:

    +: El símbolo "+" al principio del número indica el prefijo internacional. En este caso, el "+" se usa para marcar la salida internacional desde el país en el que te encuentres hacia Estados Unidos.

    1: El "1" después del "+" es el código de país para Estados Unidos. Indica que el número de teléfono pertenece a este país.

    832: Estos tres dígitos siguientes, "832", representan el código de área o prefijo regional dentro de Estados Unidos. El código de área "832" corresponde a la región de Houston, Texas.

    740-1593: Los dígitos restantes, "740-1593", forman el número de teléfono en sí. Este número específico identifica de manera única a una línea telefónica dentro del código de área 832.

Así que, en resumen, "+18327401593" es un número de teléfono internacional que pertenece a la región de Houston, Texas, en Estados Unidos.

Cita de: ChatGPT
Es importante destacar que hay otros países con códigos de país que comienzan con "1", como Canadá y varios territorios de las Islas del Caribe. Si bien es poco común, es posible que el número de teléfono "+18327401593" pueda pertenecer a una ubicación fuera de Estados Unidos, pero esto sería inusual y requeriría una investigación más detallada para confirmar la ubicación exacta.



Aquí hubo una búsqueda de ese mismo número hace cuatro meses:

Y en esta otra web que se supone al parecer es una de las mayores bases de datos gratuitas para rastrear números de EEUU, no lo tienen registrado:

...pero al menos en esa web te indica que al parecer ese número se trata de un número VOIP, vamos, que en teoría según creo entender ese número podría ser un número virtual desde cualquier parte del mundo, y de dudosas intenciones al ser VOIP. Podría ser una simple llamada robótica para hacer scam, pero también podría no serlo, ¡quien sabe!.
36  Programación / Scripting / Re: Se puede recortar una imagen bmp desde una coordenada de la imargen con VBscript? en: 4 Septiembre 2023, 16:26 pm
Muy buen codigo, tambien esta muy limpio... Que otros modulos u objectos existen para el tratamiento de imagenes y videos con VBS? Saludos

Tendría que investigarlo, pero dentro de las limitaciones de VBS al parecer no hay nada que sea tan sofisticado como WIA... a menos que encuentres librerías comerciales especializadas de terceros, y poca cosa o nada va a haber tampoco para la manipulación de un stream orientado al procesamiento de video en un lenguaje como VBS.

Saludos.
37  Informática / Software / Re: Búsqueda de carpeta perdida en Outlook en: 4 Septiembre 2023, 16:09 pm
En la versión web, ¿has probado ya a buscar la carpeta perdida en la papelera de reciclaje?...

Pero haciendo click aquí donde te saldrán los elementos "ocultos" en espera de ser eliminados de forma definitiva después de 30 días:


38  Foros Generales / Foro Libre / Re: Dudas sobre la pandemia. en: 4 Septiembre 2023, 07:24 am
Nunca le di mucha bola a las teorías conspiranoias, pero la verdad esa imagen me impresionó un poco, pensé algo como "Ah ¿estoy cegado? ¿qué es lo que no veo?".

Cuando uno escucha a casi todos los participantes del FEM / WEF, y no solo a los filántropos como George Soros o Bill Gates, sino a figuras economistas y ministros de toda índole, y también los líderes y lideresas de la OTAN como Ursula VonDer Brujen, y al presidente de EEUU Joe Biden y hasta en el gobierno socialista de España la portavoz Nadia Calviño, cuando uno escucha como todos ellos/as pronuncian las palabras "NUEVO ORDEN MUNDIAL" de forma literal para referirse a un cambio global al tratar ciertos temas, ahí es cuando uno se puede dar cuenta de que eso que la gente toma por teorías de la conspiración tienen muy poco de teoría y mucho de conspiración real.

Pero para eso hay que tener mucho tiempo, y poca gente lo tiene, y quien lo tiene no lo emplea en investigar ni escuchar las conferencias del FEM ni las declaraciones de los políticos y los eurodiputados, así que es más fácil pensar que solo son "teorías de la conspiración". Es algo comprensible. La gente no suele ser consciente de las personas tan malvadas que nos rodean, ni de como sus decisiones y sus simples palabras nos afectan negativamente en nuestras vidas. Son aquellas personas que más dinero e influencia tienen en este mundo, los más ricos, los más poderosos, son los más perversos de este planeta. Elon Musk podría ser una excepción, pero no me fio yo mucho.



¿Cual fue el plan de lo que ellos llaman plandemia?

¿Fue un accidente, o fue intencional?, ¿existió, o no existió?, la lista de teorías es muy larga, y yo no me meteré en esos jardines, pero tiendo a pensar que todo lo sucedido en la pandemia se resume a la codicia humana, y la falta de escrúpulos.

La vacuna del COVID-19 fue una vacuna experimental, esto es un hecho irrefutable (y más que reconocido publicamente incluso por la OMS), pero no hay que ser muy inteligente para darse cuenta, lo hemos vividos todos, se nos introdujo un compuesto químico sabiendo que no dejaron tiempo suficiente para hacer las pruebas necesarias que asegurasen nuestra respuesta a ese compuesto químico.

Y por si no lo sabías, en los contratos que las farmaceuticas firmaron con los distintos gobiernos del mundo para distribuir sus vacunas, en ese contrato hicieron un descargo de cualquier responsabilidad en caso de que su vacuna causase efectos secundarios o causase la muerte. Y todos los países aceptaron esas aberrantes condiciones, menos un país, no recuerdo ahora mismo cual, no se si algún país africano o puede que hungría o polonia, alguno de la resistencia globalista.

Ahora, tres años más tarde, la cantidad de gente, niños adultos y ancianos, famosos dando un concierto y presentadores de TV y reporteros en directo que han muerto y que siguen muriendo de forma repentina por ictus y otras causas que se sospecha con mucha frecuencia que esas muertes se deben a este experimento de vacuna, pues aquí nadie ha pagado por todas esas muertes, por que en los contratos de las farmaceuticas se exhimian de la responsabilidad de todas estas muertes.

Qué triste todo lo que pasó en 2020. En fin. Uno ya se puede imaginar los evidentes motivos económicos que habrán tenido las empresas de una industria como es la farmaceutica, que mueve miles de millones de dólares anuales en beneficios, para querer ser los primeros en distribuir su propia vacuna antes que sus competidores del sector, para salir ganando los primeros a costa de cualquier cosa, con vacunas experimentales que no se han testeado lo suficiente... las empresas se hacen más ricas y si la gente se muere por culpa de su vacuna experimental da igual por que de todas formas hay que reducir la población mundial, ¿no?.

Los directores de las empresas que han desarrollado vacunas, son gente que carecen de escrúpulos y de cualquier signo de humanidad. Les da igual matar a diez millones de personas con sus vacunas, mientras saquen beneficio de esas ventas...



Yo estaba confuso porque si eso fuese cierto hubiera habido revuelo, no puede decir eso como si nada

Si, si que puede, y así lo dijo Bill Gates. Pero no es el único, en varias ocasiones en el FEM / WEF otros personajes han propuesto y han dicho que es necesario reducir la población mundial. Recientemente lo último que han propuesto es usar mosquitos para infectar a la gente con el objetivo de volvernos intolerantes a la carne, para que comamos insectos y carne artificial, puedes buscar el video, son unas declaraciones bastante recientes. No me acuerdo del nombre del personaje, pero es alguien importante.

Todo esto tiene un nombre y se llama Agenda 2030, la agenda globalista con sus diecisiete Objetivos de Demolición Social (ODS).

El hecho de que no haya revuelo entre la sociedad... en parte es por la ignorancia de la gente.

Es como cuando una periodista le preguntó a Joe Biden sobre Rusia, y este confesó en micro abierto y delante de decenas de periodistas y de todos los teleespectadores, que como Putin se atreva a avanzar hacia Ucrania, él se iba a encargar de destruir el gasoducto Nordstream-2, y así lo hizo meses más tarde. ¿Hubo algún revuelo el día de las declaraciones de Biden o el día del atentado del Nordstream 2?, pues en general no, un par de noticias para disimular, y a otro tema.

Debes entender que este mundo se rige por el chantaje y los sobornos. Quienes más dinero poseen son los dueños del mundo: los fondos de inversión, como BlackRock y Vanguard, y el banco mundial, lo controlan absolutamente todo mediante participación en acciones y financiación de partidos políticos. Para que te hagas una idea, recientemente salió la noticia de que Zelensky y Biden ya han llegado a un acuerdo con Blackrock para que ellos se encarguen de "restaurar" Ucrania cuando ya no quede nadie vido ni ninguna estructura en pie allí... "restaurar" es una excusa y un eufemismo para decir que van a explotar los recursos del país, como lo fue lo de las "armas de destrucción masiva" en Irak.

Todo es un negocio para esta gente, su forma de vida es la codicia más absoluta. Controlan los medios de comunicación digital, las redes sociales, y los telediarios de la televisión pública. Ellos son quienes generan el relato, y el englomerado se encarga de difundirlo entre la sociedad.

Una clara muestra de como controlan los medios es el blanqueamiento absoluto durante años, de los innumerables delitos de Hunter Biden que han sido revelados mediante su ordenador portátil. Por que los globalistas y los dueños del mundo protegen a los suyos, como una verdadera mafia.

Fíjate como cambia la cosa cuando al que hay que señalar de presunto delincuente es a Donald Trump, día si y día también en las noticias. Un método psicológico para perjudicar su imagen en la sociedad, y así intentar reducir su apoyo electoral en las próximas elecciones.

Son una mafia mediática.

Y ya ni hablemos del blanqueamiento que hace toda la prensa española desde hace años, y en otros países también, para ocultarle a los ciudadanos la cantidad de robos, homicidios y violaciones que se cometen diariamente en el país por una mayoría de inmigrantes e ilegales del Magreb. Aquí en España siempre utilizan el término "joven", "jóvenes", "residente de España", y cosas similares para referirse a ellos, jamás lo llamarán marroquí, argelino, etc, "para no estigmatizar" nos dicen, ya, pero cuando es un español el que comete un delito, ponenhasta la foto de su ropa interior y la dirección de su domicilio.

¿Y por que hay tanto silencio en los medios a pesar de que la delincuencia y criminalidad no hace más que aumentar año tras año y quienes cometen la inmensa mayoría de delitos y crímenes son extranjeros ilegales del Magreb?, pues por que el multiculturalismo es uno de los 17 ODS de la Agenda 2030, y los medios oficiales deben obedecer a sus amos globalistas, que para eso les han pagado. Date cuenta de la relación, todo está relacionado.

Un saludo.
39  Foros Generales / Foro Libre / Re: Una empresa de Lleida busca combatientes para luchar en la guerra de Ucrania tras un curso de cinco días en: 3 Septiembre 2023, 06:10 am
Me ha llamado la atención la noticia esto es legal en España reclutar combatientes y hacerlo noticia.

Legal o ilegal esa no es la cuestión, por que algo legal no implica que sea ético, y esto desde luego que carece de ética. La esclavitud de personas de etnia africana en EEUU y la humillación pública de los mismos, la lapidación (lanzar piedras hasta la muerte) de "infieles" en el Magreb y la quema de personas vivas en zonas conflictivas del norte de África, la inquisición española y la caza de brujas durante la época medieval, el delito de sedición y la oKupación en España, muchas de estas cosas han sido y algunas siguen siendo o bien legales, o consentidas, o no perseguidas por la ley, pero ninguna de ellas es ética ni debería existir justificación para que sigan vigentes en la ley.

Pero bueno, volviendo al tema, al menos esa empresa tiene los cojones (o la santa estupidez) de ir a cara descubierta y sin complejos para mandar a españoles a matar y a morir por un país y una guerra que ni les va ni les viene, todo por culpa de una casta política que, a través de sus megáfonos de la OTAN y el gabinete de EEUU, han convencido a medio mundo de que en esta guerra hay un bando bueno y otro malo, y hay que elegir, o estás con los pobres ucranianos que solo buscan la paz, o estás con los malvados rusos que buscan dominar el planeta, el relato ya está puesto sobre la mesa, y claro, los españoles tienen que ayudar a combatir y morir por quienes esta élite aburguesada de políticos les ha dicho que son los buenos.

Por que si. Por que eso de que un español vaya a combatir por España hoy en día ya está muy visto y es considerado de fachas, así que es mejor irse a combatir por otra nación... a pesar de que allí en Ucrania si que haya una minoría preocupante (que no es tan minoritaria) de grupos y cultura al pro-nazismo, algo que se intenta blanquear en la UE por los mismos políticos que nos dicen por quien debemos combatir y arriesgar nuestras vidas poniendo a España en el punto de mira de Putin por estar ayudando a su enemigo enviando tropas, tanques Leopard y otro armamento militar...

En fin. Si al final Putin no nos termina envíando una bomba nuclear a España después de haber estado metiendo el dedo en la yaga constantemente, será solo por la gracia de Dios.

Mientras tanto, aquí más cerquita, en los problemas que verdaderamente son de nuestra incumbencia, en Ceuta, siguen reclutando de forma impune a cientos sino miles de españoles cada año, que son captados por los imánes para islamizarlos en un proceso donde luego son enviados por la frontera hacia Marruecos para instruirlos en el cometido de realizar actos suicidas y atentados kamikaze en nombre de "Allah", y aquí todos siguen callando como furcias mediáticas por más años que pasen, y lo seguirán ocultando y blanqueando por que cuando se trata de musulmanes nunca interesa hablar mal de ellos ni de los perjuicios que trae el Islam a España, como las okupaciones, las violaciones y homicidios diarios... de eso no se habla por que hay demasiadas mordidas en juego 💸💸💸 dentro del corrupto estado español.

Por cierto, hay un reportaje muy bueno sobre el tema del reclutamiento e islamización en Ceuta, se trata del episodio titulado "Marruecos" de "En tierra hostil", disponible en Amazon Prime Video España para quien quiera verlo y conocer la verdad de las cosas que nos ocultan los políticos, tanto los que se hacen llamar de izquierdas como los que se hacen llamar de derechas.

Saludos.
40  Programación / .NET (C#, VB.NET, ASP) / Re: Buscar partes del archivo hex escrito en C# en: 3 Septiembre 2023, 03:07 am
¿Es muy complicado de hacer?

Tampoco quiero pegarme media vida averiguar como se hace.

Windows Forms:

Windows Presentation Framework:

Como podrás comprobar, el control de usuario del editor hexadecimal de WPF es mucho más completo y sofisticado que el control de usuario disponible para WinForms. Quizás lo quieras considerar como opción.

El control de usuario "Be.HexEditor" para WinForms también parece tener una funcionalidad implementada para buscar un patrón de texto o bytes:


PD: yo nunca la he llegado a usar, pero no debe ser difícil.



Supongo que con toda esta información será suficiente para resolver tus dudas, pero de todas formas aquí te dejo un algoritmo que he desarrollado en VB.NET para buscar un patrón de bytes en un objeto de tipo Stream (y derivados como FileStream, MemoryStream, etc):

Código
  1. <HideModuleName>
  2. Public Module StreamExtensions
  3.  
  4. ''' ----------------------------------------------------------------------------------------------------
  5. ''' <summary>
  6. ''' Searches for the specified byte pattern within the source <see cref="Global.System.IO.Stream"/>,
  7. ''' and returns the zero-based index of the first occurrence.
  8. ''' </summary>
  9. ''' ----------------------------------------------------------------------------------------------------
  10. ''' <param name="stream">
  11. ''' The source <see cref="Global.System.IO.Stream"/>.
  12. ''' </param>
  13. '''
  14. ''' <param name="startPosition">
  15. ''' The zero-based starting position in the source <see cref="Global.System.IO.Stream"/> to perform the search.
  16. ''' </param>
  17. '''
  18. ''' <param name="count">
  19. ''' The number of bytes in the source <see cref="Global.System.IO.Stream"/> to search.
  20. ''' </param>
  21. ''' ----------------------------------------------------------------------------------------------------
  22. ''' <returns>
  23. ''' The zero-based index of the first occurrence of the specified byte pattern
  24. ''' within the source <see cref="Global.System.IO.Stream"/>,
  25. ''' if found; otherwise, –1.
  26. ''' </returns>
  27. ''' ----------------------------------------------------------------------------------------------------
  28. <Extension>
  29. <EditorBrowsable(EditorBrowsableState.Always)>
  30. <DebuggerStepThrough>
  31. Public Function IndexOf(stream As Global.System.IO.Stream, pattern As Byte(), startPosition As Long, count As Long) As Long
  32.  
  33.  Dim streamLength As Long = stream.Length
  34.  Dim endPosition As Long = startPosition + count
  35.  
  36.  If startPosition > streamLength Then
  37.    Throw New InvalidOperationException("Start Position is greater than the source stream length.",
  38.                      New ArgumentException("", paramName:=NameOf(startPosition)))
  39.  End If
  40.  
  41.  If endPosition > streamLength Then
  42.    Throw New InvalidOperationException("End Position is greater than the source stream length.",
  43.                      New ArgumentException("", paramName:=NameOf(count)))
  44.  End If
  45.  
  46.  If count <= 0 Then
  47.    Throw New ArgumentException("A value greater than zero is required.", paramName:=NameOf(count))
  48.  End If
  49.  
  50.  Dim initialStreamPosition As Long = stream.Position
  51.  stream.Seek(startPosition, SeekOrigin.Begin)
  52.  
  53.  Dim foundPosition As Long
  54.  Dim index As Integer
  55.  Dim readByte As Integer
  56.  
  57.  While (stream.Position <= endPosition)
  58.    readByte = stream.ReadByte()
  59.    If readByte = -1 Then
  60.      Exit While
  61.    End If
  62.  
  63.    If pattern(index) <> readByte Then
  64.      stream.Position -= index
  65.      index = 0
  66.      Continue While
  67.    End If
  68.  
  69.    If index = (pattern.Length - 1) Then
  70.      foundPosition = stream.Position - index
  71.      Exit While
  72.    End If
  73.    index += 1
  74.  End While
  75.  
  76.  stream.Seek(initialStreamPosition, SeekOrigin.Begin)
  77.  Return foundPosition - 1
  78.  
  79. End Function
  80.  
  81. <Extension>
  82. <EditorBrowsable(EditorBrowsableState.Always)>
  83. <DebuggerStepThrough>
  84. Public Function IndexOf(stream As Global.System.IO.Stream, pattern As Byte(), startPosition As Long) As Long
  85.  
  86.  Return StreamExtensions.IndexOf(stream, pattern, startPosition, stream.Length - startPosition)
  87.  
  88. End Function
  89.  
  90. End Module

Puedes convertirlo a C#.

Mi algoritmo está basado en este otro escrito en C#: https://stackoverflow.com/a/76443727/1248295 - simplemente le he aportado más versatilidad de uso para poder limitar la búsqueda a una posición inicial y final, y le añadí control de errores.

Nota: tanto ese algoritmo y el mio como el algoritmo de la respuesta de 'bruno conde' (https://stackoverflow.com/questions/1471975/best-way-to-find-position-in-the-stream-where-given-byte-sequence-starts/1472689#1472689) no son ni por asomo tan rápidos para buscar un patrón de bytes en archivos de gran tamaño (ej. archivos de películas de varios GB) como lo es el algoritmo de búsqueda que utiliza el programa HxD.

EDITO: El código anterior pero bastante mejor optimizado, con tiempos de búsqueda mucho más cortos sobre todo para buscar un patrón de bytes en un archivo de varios GB:

Código
  1. <DebuggerStepThrough>
  2. <Extension>
  3. <EditorBrowsable(EditorBrowsableState.Always)>
  4. Public Function IndexOf(stream As Global.System.IO.Stream, pattern As Byte(), startPosition As Long, count As Long) As Long
  5.  
  6.    Dim streamLen As Long = stream.Length
  7.    Dim pattLen As Integer = pattern.Length
  8.    Dim endPos As Long = startPosition + count
  9.  
  10.    If startPosition > streamLen Then
  11.        Throw New InvalidOperationException("Start Position is greater than the source stream length.",
  12.                                            New ArgumentException("", paramName:=NameOf(startPosition)))
  13.    End If
  14.  
  15.    If endPos > streamLen Then
  16.        Throw New InvalidOperationException("End Position is greater than the source stream length.",
  17.                                            New ArgumentException("", paramName:=NameOf(count)))
  18.    End If
  19.  
  20.    If pattLen > (streamLen - startPosition) Then
  21.        Throw New InvalidOperationException("Pattern Length is greater than the current search capacity length.",
  22.                                            New ArgumentException("", paramName:=NameOf(count)))
  23.    End If
  24.  
  25.    If count <= 0 Then
  26.        Throw New ArgumentException("A value greater than zero is required.", paramName:=NameOf(count))
  27.    End If
  28.  
  29.    Dim matchPos As Long = -1
  30.    Dim pattPos As Integer = 0
  31.  
  32.    Dim buffSize As Integer = CInt(Math.Min(4096, stream.Length))
  33.    Dim buff(buffSize - 1) As Byte
  34.  
  35.    Dim buffStream As New BufferedStream(stream, buffSize)
  36.    buffStream.Seek(startPosition, SeekOrigin.Begin)
  37.  
  38.    Dim streamPos As Long = startPosition
  39.    Dim readArray As Integer = -1
  40.  
  41.    While (readArray <> 0) AndAlso (streamPos <= endPos)
  42.        readArray = buffStream.Read(buff, 0, buffSize)
  43.  
  44.        For buffPos As Integer = 0 To buff.Length - 1
  45.            streamPos += 1
  46.  
  47.            If buff(buffPos) <> pattern(pattPos) Then
  48.                pattPos = 0
  49.            Else
  50.                If pattPos = (pattLen - 1) Then
  51.                    matchPos = (streamPos - pattPos - 1)
  52.                    Exit While
  53.                End If
  54.                pattPos += 1
  55.            End If
  56.  
  57.            If streamPos > endPos Then
  58.                Exit While
  59.            End If
  60.        Next
  61.    End While
  62.  
  63.    Return matchPos
  64.  
  65. End Function



Por cierto, en .NET Core directamente podrías utilizar la función MemoryExtensions.IndexOf:


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