вторник, 26 февраля 2013 г.

AsmTool PE

    Мое детище времен учебы в техникуме (2000 - 04 года) продолжает жить своей жизнью.  Недавно получил перевод на вебмани за эту программу (это при том что она уже более 2 лет бесплатна), открыл ее вебсайт и понастальгировал...


    В ближайшее время подходит к концу срок аренды доменного имени, и я сейчас в раздумьях стоит ли его продлевать.... 
   Немного из истории данной программы: написал я ее в техникуме, во время изучения ассемблера. Мы компилировали программы в командной строке, писали в блокноте, в общем все как полагается :-). Я уже знал более-менее паскаль и среду делфи, и у меня возникла идея автоматизировать этот процесс, началось все с многострочного текстового поля (memo, если не ошибаюсь) и автоматической генерации bat файлов с их последующим запуском. Далее возникла идея добавить подсветку синтаксиса (тут мне очень помог synEdit), быструю помощь, и т.д., в общем программа понемногу обрастала различным функционалом. В техникуме программку никто особо не оценил и я решил разместить ее в интернете на своем первом сайте на народ.ру(aleskphone.narod.ru):


    Платной я ее делал не в целях обогащения, а в целях попробовать что-то новое, да и цена установленная в 1 у.е. на это как бы намекает. 
    Больше всего меня увлекал процесс создания защиты и процедуры регистрации. Для себя я написал маленькую программку для ведения базы пользователей(которых у меня еще не было), эта программка автоматически генерировала ид пользователя, его ключ, письмо:


    Пара логин - ключ "уникальна", если это можно так назвать, по сути это просто банальное сопоставление символа набору цифр. Я максимально старался усложнить жизнь взломщику (а в том что программу будут пытаться взломать, я был уверен, так как сам увлекался этим делом, ведь интерес больше спортивный), и думаю мне это удалось. Новички взломать программу не могли, на exelab`е (бывшем cracklab`e) даже есть ветка в которой обсуждался взлом программы, в итоге ее даже вроде взломали, либо попали в одну из моих ловушек, вида: выдать сообщение о успешной регистрации, но на самом деле сделать пометку что программу пытаются взломать и потом закрывать ее без какого-либо сообщения, или вот еще помню: зашитый ключ в коде программы, который опять же ведет к псевдо успешной регистрации, итд. Возможно хорошим взломщикам эта программа просто была не интересна, или можно сказать не представляла спортивного интереса. 

Фрагмент кода процедуры регистрации:
procedure TForm3.Button1Click(Sender: TObject);
label
lab1,exit_1;
var
soft_ice_fck:string;
reg:tregistry;
valid:integer;
i,a:integer;
REGE:BOOLEAN;

begin
soft_ice_fck:='bc *';
REGE:=false;
valid:=0;
randomize;
a:=random(5000000);
asm
pushad
  push    ax
  pop     ax
  dec     sp
  dec     sp
  pop     bx
  cmp     ax,bx
  jz      exit_1
  jmp  a

exit_1:
popad
end;  


asm
pushad
mov     ax,0911h
mov     di,4647h
mov     si,4A4Eh
lea     dx,soft_ice_fck
popad
end;



fck:=fck+1;
if fck=3 then close;

if memo1.Text='23434567884532443455432HA12323A1234' then
begin
 ShowMessage('Registration SUCCES!!!!');
 REGE:=True;
 assignfile(keyfile,form2.pathexe+'sys/key.dat');
 rewrite(keyfile);
 write(keyfile,code(BGCorp(517,20)));
 write(keyfile,code(IntToStr(Length(Edit1.Text))));
 write(keyfile,Edit1.Text);
 write(keyfile,code('675'));
 write(keyfile,code(Memo1.Lines.Text));
 closefile(keyfile);
end;...

Версия 0.90 уже приобрела более "солидный" вид:


  Как сейчас помню как я прыгал когда впервые получил перевод на сумму 1 у.е. для регистрации программы, но это было уже спустя 1 год, после создания сайта asmtool.ueuo.com. 
  В 2009 году я сделал программу бесплатной, а точнее вшил в инсталляцию ключ на имя SNG,  а на сайте сделал возможность помочь проекту переводом. Но к моему удивлению переводы по 1 у.е. с просьбой выслать ключ продолжали поступать, дело в том, что программу разместили на одном из дисков журнала "Хакер", и размещенная версия была платной, вот именно за нее, наверно, и продолжали поступать переводы. С помощью них я продолжал оплачивать хостинг. Последние годы переводов становится все меньше и я плачу за хостинг уже из своей з.п. Всего за время существования программы поступило около 500 переводов, что составило около 500 у.е. из которых большая часть ушла на хостинг, доменное имя. С момента размещения на сайте кнопки помочь проекту с просьбой перевести деньги на кошелек не было совершенно не единого перевода. То есть можно сделать вывод, что наши люди готовы платить за ПО мизерную сумму и только в том случае, если они действительно получат от этого что-то взамен, благотворительностью никто заниматься не хочет. Все мои рассуждения конечно же верны на том уровне продукта, на котором находится данная программа. Сейчас я трезво смотрю на нее и вижу все ее недостатки поэтому иллюзий не 
строю.

  Актуальная версия выглядит так:







И обладает следующими возможностями:

Основные достоинства программы ASMTool PE:
  • компиляция и получение exe/com в 2 клика, процесс работы с командной строкой полностью автоматизирован...
  • подсветка синтаксиса языка ассемблера
  • получение справки о команде, прерывании, функции нажатием одной кнопки
  • встроенный справочник по опкодам asm команд
  • встроенная справка о прерываниях
  • встроенный справочник winapi функций
  • перевод ошибок компиляции TASM
  • работа с несколькими компиляторами (есть возможность добавления своих компиляторов).
  • встроенный справочник по скан-кодам клавиш
  • ошибки компиляции при использовании компилятора TASM будут отображаются
  • на русском, к некоторым из них даже предлагается вариант исправления.


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

 Вот так полученный сегодня перевод на сумму 1. у.е. побудил меня написать эту заметку, сайт я все таки закрою в скором времени, а ссылку на файл установки бесплатной версии размещу здесь. Возможно программка еще кому-то послужит :-)
ASMTOOL.zip (пароль на архив: niberium.blogspot.com)

6 комментариев:

  1. Могу я спросить, что случилось со ссылкой о которой шла речь? Очень хотелось бы скачать вашу бесплатную последнюю версию.

    ОтветитьУдалить
    Ответы
    1. Спс за замечание, забыл ссылку добавить :-) Уже добавил!

      Удалить
  2. может пора уже и сырцы выложить - а вось кому пригодится:?

    ОтветитьУдалить