1. Pascal / Говнокод #20293

    −39

    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
    procedure Graph_DefaultGetMem(var P:pointer; Size:word); far;
    {$IFDEF DPMI}
    var
      Selector: Word;
    begin
      Selector := 0;
      if Size <> 0 then
          if MemAllocateBlock(0, Size, 2, nil, Selector) <> 0 then
            Selector := 0;
      P := Ptr(Selector, 0);
    end;
    {$ELSE}
     var
      T: pointer;
     begin
      Size := (Size + 7) and $FFF8;
      GetMem(P, Size + 8);
      if P <> nil then
       begin
        if PtrRec(P).Ofs = 0 then
         begin
           PtrRec(T).Ofs := Size and 15;
           PtrRec(T).Seg := PtrRec(P).Seg + Size shr 4;
         end
        else
         begin
          T := P;
          PtrRec(P).Ofs := 0;
          Inc(PtrRec(P).Seg);
         end;
        FreeMem(T, 8);
       end
     end;
    {$ENDIF}

    Фарш GRAPH.TPU из Борманд Паскаля 7.0, провёрнутый назад. Мясо, восстановленное из котлет.

    Запостил: inkanus-gray, 29 Июня 2016

    Комментарии (8) RSS

    • SEO-пост.
      Теги: #реверс-инжиниринг, #обратная_разработка, #idapro, #дизассемблер, #декомпиляция, #девореция, #декобенация, #денатализация, #дегенерация, #рефлектор, #отражатель, #борманд, #выравнивание, #анскиллябры, #заедушные, #память, #хрюкни.
      Ответить
    • А если его переписать на си - будет смотреться вполне обыденно.
      Ответить
      • Ну да, сишникам не привыкать к коду типа while(*p++ = *q++); Только тут ещё появятся макросы типа MK_FP(Seg, Ofs), всякие атрибуты типа __far, а Цари ещё и вместо структуры PtrRec будут использовать сдвиги. В общем, на сишке это будет настолько непонятно, что и смеяться никто не будет.

        P.S. Кстати, у Борланда графическая либа была и для сишки. У неё интерфейс совпадал с паскалевским модулем Graph (за исключением соглашения вызова Cdecl вместо Pascal). Можно ради интереса и сишную либу дизассемблировать.
        Ответить
    • А я вот гамбургер как-то декомпилировал... Подправил код, удалил лишнее (морковка по-корейски - блевать тянет от ее запаха,- слишком черствые ломтики солёного огурца, капусту) и в рот, в рот!..
      Ответить
    • показать все, что скрыто"Особенно мучителен был следующий фокус: Федюшка привязывал на ниточку кусочек мяса и давал его Каштанке; потом же, когда она проглатывала, он с громким смехом вытаскивал его обратно из её желудка. "
      Ответить

    Добавить комментарий