Plugin Avast Actualizado

Desconectado Zero

  • Jr. Member
  • **
  • Mensajes: 78
  • Ubicación:
    • Ver Perfil
  • Me Gusta: 0
Plugin Avast Actualizado
« : febrero 02, 2013, 03:02:21 pm »
Hola todos, espero que se encuentren bien.

Soy nuevo por estos lares, hace poco tuve problemas con el plugin de avast con mi bfwcache (algo asi como un primo-medio-hermano) del thunder3, así que tuve que actualizar el code y aquí está el resultado:
Código:
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string>
  4. #include <vector>
  5. #include "../utils.cpp"
  6.  
  7. using namespace std;
  8.  
  9. // use this line to compile
  10. // g++ -I. -fPIC -shared -g -o avast.com.so avast.com.cpp
  11. // http.*\.avast\.com.*(\.def|\.vpu|\.vpaa|\.stamp|\.vpx)
  12. // By Lelouch
  13.  
  14. bool in_array(const string &needle, const vector< string > &haystack) {
  15.         int max = haystack.size();
  16.  
  17.         if (max == 0) return false;
  18.            
  19.         for (int iii = 0; iii < max; iii++) {
  20.                    if (regex_match(haystack[iii], needle) != "") {
  21.                            return true;
  22.                 }
  23.         }
  24.         return false;
  25. }
  26.  
  27. string get_filename(string url) {
  28.                 vector<string> resultado;
  29.                 if (url.find("?") != string::npos) {
  30.                         stringexplode(url, "?", &resultado);
  31.                         stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
  32.                         return resultado.at(resultado.size()-1);          
  33.                 } else {
  34.                         stringexplode(url, "/", &resultado);
  35.                         return resultado.at(resultado.size()-1);
  36.                 }
  37. }
  38.  
  39. extern "C" resposta get_match(const string url) {
  40.         resposta r;
  41.         vector<string> black_list;
  42.         black_list.push_back ("servers.def.vpx");
  43.         black_list.push_back ("prod-ais.vpx");
  44.         if ((url.find(".avast.com/") != string::npos) or
  45.                 (url.find(".avast.com/iavs5x/") != string::npos) and
  46.                 (in_array(url, black_list) == false)) {
  47.                 r.file = get_filename(url);
  48.                 if (!r.file.empty()) {
  49.                         r.match = true;
  50.                         r.domain = "avast";
  51.                 } else {
  52.                         r.match = false;
  53.                 }
  54.         } else {
  55.                 r.match = false;
  56.         }
  57.         return r;
  58. }
En GNU/Linux formatear por cualquier cosa es de noobs, tu decides si eres uno...