1. C# / Говнокод #6924

    +125

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    using System.Diagnostics; 
    //
    private static void ResetAdminPass(string NewPass)
    {
        //Create New Process
        Process QProc = new Process();
    
        // Do Something To hide Command(cmd) Window
        QProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        QProc.StartInfo.CreateNoWindow = true;
    
        // Call Net.exe
        QProc.StartInfo.WorkingDirectory = "C:\\windows\\SYSTEM32";
        QProc.StartInfo.FileName = "net.exe";
        QProc.StartInfo.UseShellExecute = false;
        QProc.StartInfo.RedirectStandardError = true;
        QProc.StartInfo.RedirectStandardInput = true;
        QProc.StartInfo.RedirectStandardOutput = true;
    
        // Prepare Command for Exec
        QProc.StartInfo.Arguments = @" user administrator " + NewPass;
        QProc.Start();
    
        // MyProc.WaitForExit();
        QProc.Close();
    }
    //

    http://www.codeproject.com/KB/threads/Reset-Administrator-Pass.aspx
    индусы просто охуительны

    bugmenot, 11 Июня 2011

    Комментарии (13)
  2. PHP / Говнокод #6923

    +147

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function timesec($str) 
    { 
    $h = date("H", strtotime($str)); 
    $i = date("i", strtotime($str)); 
    $s = date("s", strtotime($str)); 
    $m = date("m", strtotime($str)); 
    $d = date("d", strtotime($str)); 
    $y = date("Y", strtotime($str)); 
    return mktime($h, $i, $s, $m, $d, $y); 
    }

    GoodTalkBot, 10 Июня 2011

    Комментарии (10)
  3. PHP / Говнокод #6922

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    class Template{
    	var $result,$template_dir="templates";
    	function ParseTemplate($template,$var_name,$value){
    		$out=preg_replace("/$var_name/i","$value",$template);
    		return $out;
    	}
    	function ClearTemplate($var){
    		$var=str_replace("\n","",$var);
    		$var=str_replace("\t","",$var);
    		$var=str_replace("\r","",$var);
    		$var=str_replace("   "," ",$var);
    		$var=str_replace(">  <","><",$var);
    		return $var;
    	}
    	function Template ($values=array(),$template_name="body.html",$body="",$dir="") {
    		$this->template_dir=PATH_TO_TEMPLATES;
    		if (!$body) $body=file_get_contents($this->template_dir."/".$template_name);
    		if ($values) foreach ($values as $name => $value) {
    			$body=$this->ParseTemplate($body,$name, $value);
    		}
    		$this->result=$body;
    	}
    }

    Пришел к нам сайт на обслуживание... Как-бы шаблонизатор... )))

    nethak, 10 Июня 2011

    Комментарии (9)
  4. C++ / Говнокод #6921

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    #ifdef _UNICODE
    
    typedef wchar_t char_t;
    
    namespace std
      {
      typedef wstring string_t;
      typedef wistream istream_t;
      typedef wostream ostream_t;
      typedef wifstream ifstream_t;
      typedef wofstream ofstream_t;
      typedef wostringstream ostringstream_t;
      typedef wistringstream istringstream_t;
      typedef wstringstream stringstream_t;
      }
    
    #else // MBCS or SBCS
    
    typedef char char_t;
    
    namespace std
      {
      typedef istream istream_t;
      typedef ostream ostream_t;
      typedef ifstream ifstream_t;
      typedef ofstream ofstream_t;
      typedef string string_t;
      typedef ostringstream ostringstream_t;
      typedef istringstream istringstream_t;
      typedef stringstream stringstream_t;
      }
    
    #endif // _UNICODE

    Продолжаю разребать мега-ровный-код убер-чётких-кодеров.
    В этой серии:
    1. Иньекции в чужой namespace (погладь std сцуко)
    2. Windows[ANSI/UNICODE] == C++[std::string/std:wstring], кодировко-зависимый-независимый код
    3. Читайте матчасть std::basic_string<char> == std::string

    VladislavKurmaz, 10 Июня 2011

    Комментарии (11)
  5. PHP / Говнокод #6920

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $count = count($xml_array["TITLE"])-1; //считаем число проходов цикла.     
    for ($i=0; $i < $count; $i++) {
            echo $element[$xml_array["TITLE"][$i+1]]["value"];     //выводим название книги
            echo $element[$xml_array["AUTHOR"][$i+1]]["value"];  //выводим автора книги
            echo $element[$xml_array["YEAR"][$i+1]]["value"];     //выводим год
    }

    http://www.3mind.ru/programming/53-xml-i-php-parsing-dlya-chaynikov.html
    Из примера про парсинг XML... я один вижу индусский код ?

    Arris, 10 Июня 2011

    Комментарии (8)
  6. PHP / Говнокод #6919

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach($nodes as $xm){
        $arr[count($arr)] = new StdClass();
        $arr[count($arr)-1]->id = $xm->title;
        $arr[count($arr)-1]->nid = $xm->id;
    }

    Lowezar, 10 Июня 2011

    Комментарии (9)
  7. PHP / Говнокод #6918

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    class sqlinj
    {
    ...
    public $liste=array("=","\'","\"","*","\-","declare","char","set","cast","convert","drop","exec","meta","script","select","truncate","insert","delete","union","update","create","where","join","information_schema","table_schema","into");
    ...
    private function tumsorgular($yapilacak){ 
                switch ($yapilacak){ 
                case "post": 
                $this->islet=array("POST"); 
                break; 
                case "get": 
                $this->islet=array("GET"); 
                break; 
                case "request": 
                $this->islet=array("REQUEST"); 
                break; 
                case "aio": 
                $this->islet=array("POST","GET","REQUEST"); 
                break; 
            }     
            foreach($this->islet as $islem){ 
            eval('foreach($_'.$islem.' as $ad=>$deger){ 
                $_'.$islem.'[$ad]=$deger; 
                foreach($this->liste as $bul){ 
                $_'.$islem.'[$ad]=str_replace($bul,"\\\".$bul."\\\",$_'.$islem.'[$ad]); 
                } 
            } 
    ...
    }

    [url=http://www.phpclasses.org/browse/file/35305.html]Basic SQL Injection Protection[/url]
    Cleanup harmful text from request parameters

    Взято с phpclasses.org.
    Новый тип говнокода- турецкий(описание: расходится по швам при первой носке)

    А чё, ... не попортим так хакнем ;D

    AlexanderC, 10 Июня 2011

    Комментарии (12)
  8. Pascal / Говнокод #6917

    +92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    var
        CommHandle:integer;
        DCB:TDCB;
        Stat:TComStat;
        Kols,TransMask,Errs:DWord;
        Ovr:TOverlapped;
        s:string;
        i:integer;
    
    {Чтение канала n}
    function ReadChannel(n:integer):string;
    begin
    inc(n,32);                                                                                         //код запроса для прибора (это по спецификации прибора)
    s:=chr(n);                                                                                         //символ запроса
    WriteFile(CommHandle,s[1],length(s),Kols,@Ovr);                   //оправили этот код в прибор
    TransMask:=0;                                                                               //маска любого события в порте
    Ovr.hEvent:=CreateEvent(nil, True, False, nil);                          //хз
    repeat
    if not WaitCommEvent(CommHandle, TransMask, @Ovr) then                                                       //если приём закончен не до конца, то...
      if GetLastError = ERROR_IO_PENDING then WaitForSingleObject(Ovr.hEvent, INFINITE);           //при условии "хз" подождать ещё чуть-чуть
    
    ClearCommError(CommHandle,Errs,@Stat);                                          //скинуть длину байт из буфера порта в переменную Stat
    Kols:=Stat.cbInQue;                                                                                    //выяснить длину символов
    until (Kols=1) or (Kols=14);                                                                        //закончить, если в канале пусто (1) или данные есть (14)
    
    SetLength(s,Kols);                                                                                       //установить переменную s длиной Kols
    ReadFile(CommHandle,s[1],Kols,Kols,@Ovr);                                         //прочитать данные из порта в s, обнулив буфер
    if length(s)=1 then ReadChannel:='Пусто';                                             //дальше просто идёт обработка полученных данных
    if length(s)=14 then ReadChannel:=copy(s,5,7);
    end;
    
    
    
    {Основной код}
    for i:=1 to 60 do Value:=ReadChannel(i);                                         //ПОЛУЧИТЬ ДАННЫЕ ИЗ ПОРТА n

    Имеется прибор с хранением данных в 60 каналах. Связь осуществляется по RS-232.
    Чтобы получить данные, нужно отправить № кода нужного канала. В ответ придут данные этого канала.
    Если канал пустой, то приходит 1 байт, если данные есть, то 14 байт.
    Создана функция ReadChannel(n) с запросом данных из канала n.

    ПРОБЛЕМА:
    Прочитать все 60 каналов удаётся иногда 3 раза, иногда 15 раз. Но обязательно когда-нибудь программа зависнет на
    WaitCommEvent(CommHandle, TransMask, @Ovr), так ничего и не получив из порта.
    Если между командами
    WriteFile и WaitCommEvent
    поставить sleep(50) //9600 бод = 1200 б/с, то бишь 12 мс на 1 байт
    то всё пашет. Но это не дело же привязываться ко времени?
    Как избавиться от зависания на WaitCommEvent, чтобы процесс продолжился?
    Если прибор не получил байт, из-за чего не ответил, как это проверить? "Данных нет уже 0,5 с, значит и не будет; отправлю этот байт ещё раз".

    sbs, 10 Июня 2011

    Комментарии (13)
  9. Java / Говнокод #6916

    +79

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private double findVar(String vname) throws InterpreterException {
        if (!Character.isLetter(vname.charAt(0))) {
            handleErr(SYNTAX);
            return 0.0;	// ?!
        }
        return vars[Character.toUpperCase(vname.charAt(0))-'A'];
    }

    dwinner, 10 Июня 2011

    Комментарии (13)
  10. C# / Говнокод #6915

    +126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    private string ReadFile(string filePath)
    {
        string fileText = string.Empty;
        int openAttempts = 0;
        try
        {
            using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
            {
                using (StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(1252)))
                {
                    fileText = sr.ReadToEnd();
                    if (!sr.EndOfStream)
                    {
                        sr.Close();
                        fs.Close();
                        throw new Exception();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            //Throw an error if the number of attempts is equal to the number of configured retries
            if (openAttempts == 20)
                throw new Exception(ex.Message);
            else
            {
                openAttempts += 1;
                Thread.Sleep(1000); //Put the thread to sleep for the configured amount of time
                ReadFile(filePath);
            }
        }
    
        return fileText;
    }

    Тут все, и управление исключениями, и бессмысленная рекурсия, и глупые ошибки. Про то, что это можно было заменить на одну строчку я молчу даже.

    Jabberwok, 10 Июня 2011

    Комментарии (13)