Consulta sobre optimizacion

Estado
Cerrado para nuevas respuestas.

elnick

Newbie Lvl 3
Estoy haciendo un anti cheat, con el EnumWindows, tengo 2 opciones, la 1era es hacer un enumwindows y almacenar el nombre de cada ventana en un arreglo, comparar este arreglo con otro que tiene cargado todos los nombres de los cheats y si hay ocurrencia que lo cierre o lo que sea.

La otra opcion es mandarle al EnumWindows como parametro una funcion que lo que hace es usar el nombre del cheat de la lista y compararlo con el nombre de las ventanas.

No se que sera mas optimo, si armar un arreglo y comparar yo mismo con una funcion de busqueda (podria usar ordenamiento y busqueda dicotomica alfabetica), o utilizar la funcion enumwindows que mas que seguro hace una busqueda dicotomica alfabetica y algun otro beneficio debe traer.

Bueno, espero algun comentario :S necesito una ayudita :D
 

elnick

Newbie Lvl 3
Bue ya lo hice de la 2da forma y anda barbaro, ahora tengo que probar cargandole muchos cheats ^^
 

Grefu

GeNio a SeKaS
Ex-Staff
El problema de esos anticheats es que existen programas con los que se puede cambiar el nombre a los procesos :arrow:
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
Que bueno... cambio el nombre del proceso y se fue el anticheat.

Igual, te recomiendo que calcules la complejidad de los dos algoritmos y cada cuanto van a ser llamados.
 

elnick

Newbie Lvl 3
Osea, no estoy usando los nombres de los procesos ^^ sino el caption de la ventana, eso tambien se puede cambiar?

Y sino que otra forma de hacer un anti cheat hay?
 

Zy

Newbie Lvl 2
Si tenes una lista larga de cheats me parece que la primera manera va a andar mejor.
 

elnick

Newbie Lvl 3
Tavo no fuiste de mucha ayuda que digamos ^^
Sino la otra que podria hacer es comparar nombres y bytes :S o nose la verdad no se me ocurre forma de bloquear.

Hay alguna forma de manipular los assembly?, osea se podria investigar a los chits mas comunes a ver que descomposicion digamos por decirlo tienen y tenerlo almacenado y despues comparar, noseee ya flasheo mucho no se me ocurre nada :(

Alguno tireme una soga!
 

Grefu

GeNio a SeKaS
Ex-Staff
elnick dijo:
Hay alguna forma de manipular los assembly?, osea se podria investigar a los chits mas comunes a ver que descomposicion digamos por decirlo tienen y tenerlo almacenado y despues comparar, noseee ya flasheo mucho no se me ocurre nada :(

Alguno tireme una soga!

Eso fue lo que yo pensé, es el llamado sistema de firmas que usan los Antivirus, Yo habia pensado hacer unos scripts que llamasen a un editor hexadecimal opensource, guardar la descomposicion hexadecimal y compararla con una base de datos de firmas extraidas de todos los cheats que se hayan conseguido. De hecho tengo medio preparado el script en python, pero es solo un sucio proyecto que quedara archivado en el mismo cajon que todos 8)
 

elnick

Newbie Lvl 3
Porque va a quedar archivado?? La idea es buena, es bastante trabajo pero si se puede hacer, despues solo restaria hacer que el ao no pueda ser usado si el anticheat no esta puesto, al estilo CS.

Cual es el descompositor, tenes alguno en vista o es la idea nomas?, tambien se puede hacer directamente en vbasic eso no? o phyton da mas rendimiento?

Bue nose...me gustaria ponerme a hacer algo en serio.

Saludos.- ElNICk
 

Grefu

GeNio a SeKaS
Ex-Staff
En poco tiempo GS publicara su Anticheat, por mucho que consiga en tan poco tiempo el suyo estara mil veces mas optimizado, sera mil veces mas rapido y con su remombre se hara mil veces mas popular, ademas que onda competir con GS
 

Grefu

GeNio a SeKaS
Ex-Staff
El sistema en el que se basa el STO es secreto, solo lo sabe el GSstaff

Te comento que el editor era el Hexplorer, suerte
 
A

Anonymous

Invitado
elnick dijo:
Al final no me contestaron si el Caption de la ventana tambien se puede cambiar =S
Si se puede con el WordPad xD
macroty6.jpg
 

DarkThom

Oráculo Lvl 3
Se me ocurrio una idea es esta la mayoria de los cheat externos usan una DLLs y si se blokea esa DLL??

Porque los cheat clientes modificados no son tanto problema
 

elnick

Newbie Lvl 3
Em...la verdad no se me ocurre como saber que dll esta usando cada programa =S, ademas no todos los chits usan dlls propias digamos, muchos usan apis y no vas a bloquar la "user32" =P o "kernel32"
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
Un par de cosas:

a) No contestaste mi pregunta sobre la complejidad de los dos algoritmos y la concurrencia que tendrán. ESO influye absolutamente en decidir que algoritmo usar en cada caso.
b) Ya te dije Grefu las contras del sistema de firmas. Pensa que se va a hacer muchas veces (Va a controlar TODOS los programas abiertos), y lo que va a hacer es lo siguiente:

- Pido al O.S. que me de el archivo.
- Pido al O.S. que me lo cargue en memoria.
- Uso algun hexa (Esto lleva tiempo...).
- Comparo la firma.

Eso va a tener que suceder varias veces, y por ejemplo, tengo activos 42 procesos en mi compu ahora, sería revisar 42 veces y va a tardar un monton, pensa que mientras haces eso va a haber gente jugando.
Igual, la forma es hacer un MultiThreading con dos hilos, uno que se encargue del programa y otro que revise, pero igual, estamos en la misma, el MultiThreading es demasiado caro para el procesador, y estamos haciendo una operación que va a tardar mucho...
 
Estado
Cerrado para nuevas respuestas.
Arriba