собеседование в virlab

Тема в разделе "WASM.HEAP", создана пользователем oldnoob, 19 июл 2011.

Статус темы:
Закрыта.
  1. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >> пробовали править чужой код? думали, что там табуляция, а там пробелы. ага! или скопипастить что-то из своего кода >> в чужую функу. блин, это же надо все переформатировать. да или просто вы написали кусок кода, а затем решили его >> оформить отдельной функций. на сях и паскале -- ну скопировал и успокоился. а тут...
    >> или просто добавли еще один if. или цикл. это ужас нах. это снова все переформатировтаь...

    И правил и добавлял и копировал. И используя ide (они очень сильно компенсируют для многих эффект от синтаксиса) и тупо в фаре (впрочем в нем тоже плагины есть для удобств). Просто, скорее всего, мой стиль кодинга довольно хорошо лег на это правило, тк в С я всегда отделял блок едионообразными отступами. Поэтому в питоне этого и не замечал. Хотя есть одна вещь которая иногда раздражает - отсутствие нативного switch`a >____<.

    Но вообще, несмотря на все недостатки, питон стал стандартом де факто в реверсе и с этим ничего уже не поделаешь (к счастью ^_____^). Хотя некоторые ольдскульные перлисты ещё тихонько ворчат ^______^.
     
  2. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    > двумя руками за - питон не нужен
    кому он не нужен? он в иде что ли с бонуна появился? да и просто оцените объем библиотек для решения самых разных задач. на питоне он просто огромен.

    я пытался игнорировать питон, но у меня это не получилось. т.к. он мелькает все чаще и чаще.

    > да и кому он нужен этот питон кроме колупателей малвари?
    для быстрого прототипирования подходит вполне.

    > а вот плюсы - еволюция от обычного С, кто ее не усвоил тот феил
    и в чем этот фейл выражается? просто интересно.
     
  3. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >>двумя руками за - питон не нужен
    >>да и кому он нужен этот питон кроме колупателей малвари?
    0___o вы с какой планеты? Скрипты под иду на убогом идц пишете? А под Олли на не менее обдолбанном OllyScript?
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    M0rg0t
    > Да кому нужны эти плюсы.
    вообще-то, как бы нужны. но не всем. а пропаганда заставляет их юзать чуть ли не насильно. по всем признакам, плюсы это специализированный язык и совсем не язык общего назначения. к тому же язык требующий опыта и глюбокого понимания многих концепций, которые просто так не освоить. а неумелое обращение с плюсами рождает кошмарный код. в том же питоне -- код сложно испортить, если только не стремиться к этому специально.

    > Энтерпрайз проще и быстрей сделать на шарпе,
    не вижу вокруг себя шарпа. причем мы энтерпрайз. а что вижу? жаба, си, руби, скала...

    >> пробовали править чужой код? думали, что там табуляция, а там пробелы. ага!
    > Если в нормальном языке типа перла или пхп, скопировал код и работает, то в питоне
    > этом пришлось ставить отступы (которые похерились форумным тегом code), короче
    > удовольствия мало. С одной стороны, вроде сверхвысокоуровневый язык, с другой
    > это средневековое варварство с отступами и пробелами.
    ну вот я тоже питон считал игрушкой для обучения студентов и думал -- а зачем он мне?! но все-таки подсел на него. по причине того, что скриптовая поддержка многих продуктов стала на питоне.
     
  5. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >> приятно кстати познакомится
    >> я реверсер
    >> а вы видимо колупатель малвари

    ну ладно, хорошо, я не реверсер и вообще не авторитет.
    Но вот баг хантеры не реверсеры? Исследователи прошивок всевозможных не реверсеры? А форматы закрытые кто исследует? И блин почему то все пользуются и скриптами и питоном.

    Почему вы отрицаете пользу автоматизации мне не понятно. Причем автоматизации дешевой в силу скриптов.
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    izl3sa
    > И блин почему то все пользуются и скриптами и питоном.
    да вот мне сейчас потребовалось скачать один сайт на диск. причем, скачать не все целиком, а вполене определенные страницы. и там такой алгос -- делаем на главной странице запрос, получаем список линков. парсим линки и заходим внутрь если они отвечают регуоярному выражению (в заголовке встречаются определенные слова и не встречаются слова из "стоп" листа). дальше находим линки на pdf'ы и сохраняем те из них, которые свежее чем (а для этого ловим ответ сервера и если файл старый, мы рвем соединение, чтобы его не тянуть понапрасну).

    вопрос -- какая готовая программа могет такое сделать? пусть даже платная. а хрен его знает. но мне и знать не надо было. на питоне полчаса работы (с учетом, что я его только учу).

    вопрос номер два -- альтернатива питону? руби и перл не предлагать. ибо перл я учил (но забыл), а руби тоже учу потихоньку и он грубо говоря еще один перлопитон.

    а сначала хотел юзать wget и парсить html на си, но на питоне оказалось есть и HTTP поддержка и даже библиотека для HTML парсерсинга.

    да блин вот тут была задача скачивать архивы файлов с разных серверов и сливать их в одну директорию, киляя дубли. на питоне буквально два десятка строк. а на чем это еще можно решить с той же скоростью написания кода? (причем дубли не по именам, а по содержимому, для которого нужно md5 взять и потом осуществить быстрый поиск в массиве). ну да, это можно хоть на си написать, хоть на дотнете. хотя нет. стоп. у меня щас и винда, и мак, и линух в ходу. так что дотнет не вариант.
     
  7. Kaimi

    Kaimi Андрей

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    120
    Главный лоббист C++ тут как тут. Вы сами то свои высказывания и знания адекватно оцениваете? А то сдается мне, что нет. Может продемонстрируете хотя бы малую долю своих "мэд-скилз" и напишете универсальный коллбэк-враппер? Если нравятся более четкие формулировки, то как-то так:

    Реализовать шаблонный класс, позволяющий сохранить указатель на функцию, либо объект класса с перегруженным оператором(), либо указатель на метод класса, чтобы потом выполнить. Типа boost::function. И пусть он поддерживает синтаксис в виде callback_wrapper<int(const std::string&, int)> callback.

    Хотя Ваш божественный разум скорее всего соизволит найти ту или иную причину, дабы не демонстрировать свои познания, но продолжать во всех темах преподносить себя как евангелиста C++ или нечто подобное.


    На другом скриптовом языке с более привычным синтаксисом и условностями?
     
  8. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    kaspersky

    >> да вот мне сейчас потребовалось скачать один сайт на диск. причем, скачать не все целиком, а вполене определенные
    >> страницы. и там такой алгос -- делаем на главной странице запрос, получаем список линков. парсим линки и заходим
    >> внутрь если они отвечают регуоярному выражению (в заголовке встречаются определенные слова и не встречаются
    >> cлова
    >> из "стоп" листа). дальше находим линки на pdf'ы и сохраняем те из них, которые свежее чем (а для этого ловим ответ
    >> сервера и если файл старый, мы рвем соединение, чтобы его не тянуть понапрасну).

    Чтото дампер связок напоминает =)

    >> мораль - реверс реверсу рознь
    Да, это очевидно.

    >> с радостью, только что? ну вот что мне автоматизировать?
    не зная вашей предметной области не скажу =) да даже зная наверное не скажу =))
    Можете намекнуть в личку про область?
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Вы очень узко мыслите. Питон нынче на столько популярен, что многие пакеты 3d моделирования так же обалдают интерпретатором питона. Питон используется далеко не только в мальварь реверс области.
    А что до "вас заставили" - думайте как хотите. Могу тоже самое сказать про любой другой язык. И вообще - почитайте наконец истоки возникновения языка Питона.

    Я уже писал, и еще раз напишу - а мне нравится питон, удовольствие на нем кодить ).
    И как правильно заметил Крис, действительно автоматизирует очень многие вещи.
     
  10. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >> я разбираю программы, всю или части в ноль или в алго
    Немного отклонюсь от темы, а как и где вы работу ищете под это?

    >> но есть большой минус питона, это тот что назвал крис
    >> любой пробел, ламает функционирование программы
    ну это уже преувеличение.
     
  11. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >> а hr я уж и сам разберу) спасибо
    >> прЮвет TSS

    TSS был прав имхо =) пускай не питон, а Си, но ведь алгосы то уже давно известны =)
     
  12. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    >> в чем он прав? пригласим его подискутировать?
    в том, что там все теже алгосы, что описаны у Кристины Цифуентес ещё в 94. Ильфак сам выкладывал доку с описанием.

    >> ильфак свой hr с 2001 года пишет
    не могу судить

    >> а тут вдруг TSS за недельку на питоне может набросать аналог hr
    про сроки он конечно не прав, но прав в том, что бессмысленно реверсить hr, лучше читать Цифуентес и ван Эмерика =)

    А вы не могли бы скинуть статьи по hr, которые у вас есть?
     
  13. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    !!! EPIC FAIL !!!

    kaspersky
    TermoSINteZ

    Скриптовый язык нужен, но не с таким дебильным синтаксисом.

    Syser и С++ , вы точно знаете что такое С++? )) Кроме нескольких полиморфный классов от цпп не чего нет!
    АЙС был ариентирован как дебаггер для многих платформ и осей, и его архитектура весьма тумана, и это не совсем та реализация под 86. И если вы заметили то сусер на песикиел и декомпозицию модулей и куски кода от айса, и понятное дело продукт молодой, и он весь проще в разработке так как только Винда под 86.
     
  14. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    shchetinin
    Как Вы себе представляете полиморфные классы - это что такое, Вы курили?
     
  15. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    shchetinin
    > Скриптовый язык нужен, но не с таким дебильным синтаксисом.
    скриптовый, язык, синтаксис... три слова и все лживые.

    нужны библиотеки (причем, желательно встроенные), нужна поддержка со стороны приложений, нужна высокая продуктивность в решении повседневных задач и легкость в обучении и переходе с других языков -- вот что нужно.

    что не нравится в синтаксисе питона, кроме форматирования? что-то среднее между си и паскалем. это не форт, и не лисп, и не хаскель -- вот уже где точно с непривычки можно мозги вывихнуть.

    но не нам выбирать. вот у меня есть потребность поиграться с некоторыми мат. алгоритмами, которых до этого никогда не курил и смутно представляю как их реализовать. на чем это писать? причем мне нужна нативная поддержка динамических и ассоцитивных массивов, сетов, списков... пробовал писать на си. все уперлось, что основное время расходуется на слишком низкоуровневую возню. ну вот самый простой пример -- функция, которая принимает в качестве аргумента другую функцию. на питоне это:

    def xxx(x):
    # вычисляем хэш по методу xxx

    def yyy(x):
    # вычисляем хэш по методу yyy

    hz = (xxx, yyy);

    def foo(llist, f):
    _for name in llist:
    __print (f(name));

    for d in data:
    _for i in hz:
    __foo(d, i);


    а теперь тоже самое на си. или на плюсах. и уложится в сопоставимое нажатие клавиш.

    > Улыбнуло ... думаю вы еще не понимаете убогости С++.
    > Хотя кое где он все таки пременялся, но имхо его время прошло. А вот СИ был и будет!
    плюсы немного спасает qt. а так сейчас со всех сторон я только и слышу. "зачем тут плюсы? опять переполняющиеся буфера плодить б^я?! волевое манагерское решение -- писать на жабе" (и хотя я против такого подхода, но вижу, что код индусов на жаба лучше кода индусов на плюсах по всем ТТХ, а профи на плюсах хочет столько бабла что ему говорят -- идите в баню, мы железа лучше докупим, тем более, что предел насыщения одиночных ядер достигнут, а и теперь мощность можно наращивать только числом компов в кластере, а это как раз не проблема).

    и вообще какие плюсы?! тут сейчас битва СОАП против рестфула. старая школа против новой. язык -- по фиг. абсолютно по фиг. главное -- интерфейс (не гуй, а АПИ). на руби сейчас программистов хватают со страшной скоростью. и они делают то, что раньше делали на плюсах. да и питон еще вот подливает масла в огонь. еще скала. ну дотнет отхватил свой кусок пирога (терпеть не могу дотнет, т.к. его нет на никсах и маках, но... что поделаешь).

    вообще, что подарил миру си++? бесконечную череду переполняющихся буферов от zlib до swf? их где только не находят... а еще целочисленное переполнение. коррупцию памяти на ровном месте, т.к. "умные" головы применили язык со статической типизаций к динамическим средам типа браузеров. и тут мы поимели аврору и кучу других громких атак.

    короче, убытки от плюсов грандиозны. ну разве что идеология макрса с нидше оказала более разрушительное влияние на цивилизацию. плюсы заведомо делают программирование ужасно сложным. хосподи, на объективно орентированном руби вопросов про виртуальные деструкторы не возникает. и на этот же руби не хрен закрывать открытый файл. он сам закроется. когда надо. и объективные концепции объясняются на пальцах одной руки. в резульате на руби намного сложнее выстрелить себе в ногу, но проще выразить авторскую задумку.
     
  16. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    С++
    Работа с памятью просто ужасает.. Стауструп предумал один из худших вариантов ...
    То и есть не каких пулов, не каких атрибутов протекции , не говоря уже для работы в ядре.

    ООП с файледской инкапсуляцией вообще идея мрак!
    std::string str("bla-bla-bla-blabla-blabla-blabla-bla"); Откуда известно что памяти хватит? в особенности для std::exception?

    Каждый раз как только создаем объект на стеки, надо еще блять всякой ху?ты на генерить, для того что бы деструкторы отработали.
    И продолжать можно очень долго ... Не реально что то стабильное написать. Разве что какой интерфейс.

    STL это вообще предолиба ... Сам Стефанов(это создатель) от нее отказался как и от самого ООП.

    Код (Text):
    1. NTSTATUS __stdcall HookedDxgkDdiSetVidPnSourceAddress(HANDLE hAdapter, int pSetVidPnSourceAddress)
    2. {
    3.   int pSetVidPnSourceAddress2; // edi@1
    4.   int pSetVidPnSourceAddress3; // esi@2
    5.   int lpFrameBufferPhysAddress; // eax@5
    6.   NTSTATUS Status; // [sp+Ch] [bp+8h]@1
    7.  
    8.   pSetVidPnSourceAddress2 = pSetVidPnSourceAddress;
    9.   Status = g_OrigDxgkDdiSetVidPnSourceAddress(hAdapter, pSetVidPnSourceAddress);
    10.   if ( *(_BYTE *)(pSetVidPnSourceAddress2 + 284) & 1 )
    11.   {
    12.     sub_1103E((int)P, (int)&pSetVidPnSourceAddress, pSetVidPnSourceAddress2 + 16);
    13.     pSetVidPnSourceAddress3 = pSetVidPnSourceAddress;
    14.     if ( pSetVidPnSourceAddress )
    15.     {
    16.       if ( *(_BYTE *)(pSetVidPnSourceAddress + 16) )
    17.       {
    18.         SyserBootReleaseFrameBufferMap((int)&g_FrameBufferPhysAddress);
    19.         if ( SyserBootAllocateFrameBufferMap(
    20.                *(_DWORD *)(pSetVidPnSourceAddress2 + 8),
    21.                *(_DWORD *)(pSetVidPnSourceAddress2 + 12),
    22.                *(_DWORD *)(pSetVidPnSourceAddress3 + 44) * *(_DWORD *)(pSetVidPnSourceAddress3 + 28),
    23.                (int)&g_FrameBufferPhysAddress) )
    24.         {
    25.           *(_DWORD *)(pSetVidPnSourceAddress3 + 36) = g_FrameBufferPhysAddress;
    26.           lpFrameBufferPhysAddress = g_FrameBufferPhysAddress;
    27.           *(_DWORD *)(pSetVidPnSourceAddress3 + 40) = g_FrameBufferPhysAddress;
    28.           ValidateFrameBufferPhysAddress(
    29.             *(_DWORD *)(pSetVidPnSourceAddress3 + 24),
    30.             *(_DWORD *)(pSetVidPnSourceAddress3 + 28),
    31.             *(_DWORD *)(pSetVidPnSourceAddress3 + 32),
    32.             lpFrameBufferPhysAddress,
    33.             *(_DWORD *)(pSetVidPnSourceAddress3 + 44));
    34.           *(_DWORD *)(ptrDeviceExtension + 8) = &g_LPMasterIrp;
    35.           if ( HookIsSuccess )
    36.           {
    37.             DbgPrint(
    38.               "SyserBoot : DxgkDdiSetVidPnSourceAddress hAllocation = %08X\n",
    39.               *(_DWORD *)(pSetVidPnSourceAddress2 + 16));
    40.             DbgPrint(
    41.               "            Mode Change %d X %d X %d Pitch %d PhysAddr[%08X] FrameBuffer[%08X]\n",
    42.               *(_DWORD *)(pSetVidPnSourceAddress3 + 24),
    43.               *(_DWORD *)(pSetVidPnSourceAddress3 + 28),
    44.               *(_DWORD *)(pSetVidPnSourceAddress3 + 32),
    45.               *(_DWORD *)(pSetVidPnSourceAddress3 + 44),
    46.               *(_DWORD *)(pSetVidPnSourceAddress2 + 8),
    47.               *(_DWORD *)(pSetVidPnSourceAddress3 + 40));
    48.           }
    49.         }
    50.         else
    51.         {
    52.           if ( HookIsSuccess )
    53.             DbgPrint(
    54.               "SyserBoot : DxgkDdiSetVidPnSourceAddress fail to map PhysAddr 0x%08X\n",
    55.               *(_DWORD *)(pSetVidPnSourceAddress2 + 8));
    56.         }
    57.       }
    58.     }
    59.   }
    60.   return Status;
    61. }
    62. char __stdcall SyserBootAllocateFrameBufferMap(int PrimarySegment, int PrimaryAddress, int NumberOfBytes, int lpFrameBufferMap)
    63. {
    64.   KIRQL v4; // al@1
    65.   char result; // al@4
    66.   int lpFBMap; // eax@5
    67.  
    68.   v4 = KeGetCurrentIrql();
    69.   if ( v4 )
    70.   {
    71.     if ( HookIsSuccess )
    72.       DbgPrint("SyserBoot : AllocateFrameBufferMap IRQL = %08X\n", v4);
    73.     *(_DWORD *)lpFrameBufferMap = 0;
    74.     result = 0;
    75.   }
    76.   else
    77.   {
    78.     lpFBMap = MmMapIoSpace(PrimarySegment, PrimaryAddress, NumberOfBytes, 2);
    79.     *(_DWORD *)lpFrameBufferMap = lpFBMap;
    80.     if ( lpFBMap )
    81.     {
    82.       *(_DWORD *)(lpFrameBufferMap + 8) = PrimarySegment;
    83.       *(_DWORD *)(lpFrameBufferMap + 12) = PrimaryAddress;
    84.       *(_DWORD *)(lpFrameBufferMap + 16) = NumberOfBytes;
    85.       result = 1;
    86.     }
    87.     else
    88.     {
    89.       result = 0;
    90.     }
    91.   }
    92.   return result;
    93. }
    Где сдесь С++ ? на буй он сдесь нужен ...
     
  17. KraZz

    KraZz New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    4
    Ну почему же невозможно, все даже очень возможно!
    Вот мой сервис как раз этим и занимается
    http://damagelab.org/index.php?showtopic=21847
    можешь скачать архивы и увидишь что это реально!
    ЗЫ: Там, на C++ и на Delphi код есть

    P. S.
    Кроме питона есть еще lua, тоже набирает обороты
    Я лично в сложных проектах использую оба этих ЯП, реально один питон НЕ тянет
    К примеру, логи (xml) от 50Mb и выше обрабатываю (парсю) на lua, а гуи (вывод информации) питон+Qt
     
  18. parser

    parser New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2011
    Сообщения:
    7
    shchetinin
    Какой Стефанов))) Степанов.
    На счет памяти - юзайте смартпоинтеры (их несколько типов, исповедают различную стратегию владения) и забываем про проблемы с delete.
     
  19. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Nafanya
    >> ассоцитивных массивов, сетов, списков... пробовал писать на си.
    > STL
    не затруднит показать как это сделать на STL? будьте любезны. очень тривиальная задача -- распечать pcap в человеческом виде.

    import socket
    import dpkt
    import sys
    pcapReader = dpkt.pcap.Reader(file(sys.argv[1], "rb"))
    for ts, data in pcapReader:
    print (data)
    ether = dpkt.ethernet.Ethernet(data)
    if ether.type != dpkt.ethernet.ETH_TYPE_IP: raise
    ip = ether.data
    src = socket.inet_ntoa(ip.src)
    dst = socket.inet_ntoa(ip.dst)
    print "%s -> %s" % (src, dst)
     
  20. Satsura

    Satsura S4(uR4 __r00tw0rm__

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    374
    Адрес:
    Узбекистон, бляать!!11 :D
    >>http://damagelab.org/index.php?showtopic=21847
    >>ЗЫ: Исходный код НЕ продаю!

    - А ты хотя бы пару бинарей своего движка выложи. ты ведь не жадный правда ? (;
    зы.: просто интересен алгоритм генерации псевдокода... (:
     
Статус темы:
Закрыта.