All streams
Search
Write a publication
Pull to refresh
68
0
Send message
Угу, как на ПЭВМ «Агат»: одна отвечает за горизонтальное позиционирование, другая за вертикальное!
Хотя стоп, почему не могу?

BITS 32;
ORG 05430000h;

DB 0x7F, "ELF";
DD 01h, 00h, $$;
DW 02h, 03h;
DD @main;
DW @main - $$;

@main:
  INC EBX;
  DB 05h; <-- ADD EAX,
  DD 04h; <-- LONG(04h)
  MOV ECX, @text;
  MOV DL, 11;
  INT 80h;
  AND EAX, 00010020h;
  XCHG EAX, EBX;
  INT 80h;

@text:
  DB "ELF, hello!";

Здесь автор статьи с Muppetlabs развернулся на всю катушку: каждый байтик в вышеприведённом коде используется если не по три, то по два раза точно!
Попытался собрать тамошний 62-байтный Hello World, но наткнулся на упорство транслятора, не желающего видеть DWORD впереди четвёрки, и вопреки логике выдающего «короткий вариант» ADD (83 C0 04) вместо «длинного» (05 04 00 00 00). Пришлось править вручную…

Аналогичная программа, перепиленная под строку «ELF, hello!» занимает 60 байт (взамен моих 70-ти), однако исходник, по вышеописанной причине, выложить не могу.
Ну так скотч, пусть даже армированный, это не метафора!
В отличие от синей-то изоленты.
Вероятно, оригинал шутки.

Я комнату взглядом окинул
И, будто узором прельщен,
«Мне нравятся очень… обои!» —
Сказал им и выбежал вон.
Прошу меня извинить, ошибся немного.
Нужно заменить
DD 01h;

@code:

на
DW 01h;

@code:

т.к. e_phnum — это тоже WORD, а не DWORD.

Итого, экономим ещё 2 байта — и на выходе получаем 70 байт.
Эх.
Вот и настало мне время горько пожалеть о старом винчестере, безвременно ушедшем в мир иной.
Я ж этот Ваш XTrooper со всеми ресурсами и скайбоксом (пережав его в JPEG, правда, но при моих тогдашних 1024×768 заметно не было) смог тогда упаковать в 92 килобайта =(
Прошу прощения, а это часом не Вы автор XTrooper, выкладывавшегося в своё время на code.darthman.com?
72-байтное решение:

BITS 32;
ORG 00400000h;

DB 7Fh, "ELF";
DD 01h;
DD 00h;
DD $$;
DW 02h;
DW 03h;
DD @main;
DD @main;
DD 04h;

@main:
  MOV ECX, @text;
  JMP SHORT @code;
  NOP;

DW 34h;
DW 20h;
DD 01h;

@code:
  LEA EDX, [EBX+11];
  LEA EAX, [EBX+4];
  INC EBX;
  INT 80h;
  MOV EAX, EBX;
  INT 80h;
@text:
  DB "ELF, hello!";

Компилируется так:

yasm -f bin имяфайла.asm
chmod u+x имяфайла

Прошу простить моё неведение, а такую схему возможно как-либо перевести на рельсы тонких клиентов?

Т.е. есть у нас, допустим, мощный хост, с каким-нибудь умопомрачительным графическим адаптером, и, скажем, три машины с, условно, целеронами дремучих годов и 64 МБ оперативы.
Между этим великолепием раскинута ЛВС на Ethernet.

Можно ли как-то заставить центральный хост удалённо отдать какому-либо из клиентов свою видеокарту в пользование, и, вооружившись видеокартой хоста, работать с этого клиента с каким-нибудь требовательным к видеоаппаратуре приложением?
Эх, ностальгия-ностальгия…
У меня ведь до 2006 года Windows 98 SE проработала.
Можно сказать, Windows XP даже не застал.

/me ушёл доставать со шкафа свой P1-133/32MB/500MB.
Ну, во-первых, наверняка хабраэффект.
А во-вторых, у меня ещё год назад была номинальная скорость безлимитки 32 КБ/с (256 кбит/с). И ничего, жил вроде.
Терпение, сэр =)
Да господь с Вами, какая ж это бравада.
Просто я с самого начала превратно понял смысл темы.

Я думал, что предлагается новый, доселе невиданный тип защиты программы.
«Ага!» — подумал я, — «а вот и ещё практика, перед собеседованием будет полезно», — и принялся за исследование.

И только потом, уже после написания комментария снизу, до меня дошло, что это не новый тип защиты, а новый тип trial-режима.
Думаю, что не буду, т.к. знаю его отношение.
Однако, я ещё не выложил в паблик ни одного по-настоящему рабочего кряка.

Даже статья, с которой я сюда пришёл, не предлагает готового генератора ключей, в силу намеренной несовместимости выложенного решения с текущей версией ломавшейся программы.

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

На самом деле я сейчас пишу резюме для подачи в Лабораторию Касперского, т.е., как Вы выразились, собираюсь зарабатывать взломом.

Если Вы будете не против, то я укажу в резюме «опыт вскрытия коммерческих приложений со стоимостью годовой подписки до €3500», и на собеседовании предоставлю доказательство в виде Вашего пакета.

Если же будете против этого — то, прошу, отпишите ниже.
Plazik, если уж маяться фигнёй — то до конца! =)

Попробуйте, пожалуйста, сотворить с Вашим окном вот это, и отчитайтесь о результате.
IMHO, без попытки программно снять выделение с радио-батона, раскрытие темы будет неполным.
Не знаю, может быть я и наивен, однако разработчики, душимые жабой, но имеющие достаточный опыт для понимания важности анализа кода, смогут самостоятельно обойти защиту в том виде, в котором она существует сейчас.
Запросто. Нужно всего лишь послать нашему батону (который радио) сообщение BM_SETCHECK(BST_UNCHECKED, 0), выцепив из ОС дескриптор означенного батона:

SendMessage(FindWindow("BUTTON", "Да, перезагрузить компьютер сейчас."), BM_SETCHECK, BST_UNCHECKED, 0);

Дополнительная информация по теме.
Авторам: хоть немного «размазывайте» по коду проверку валидности ключа.
Мне удалось её обойти единственным переносом ветвления. Есть сигнатура места правки.

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

В паблик, разумеется, выкладывать не буду в любом случае, однако всё же, следите за тем, как пишете защиту.
Во. Накинул плюс в карму =)
1

Information

Rating
Does not participate
Registered
Activity