Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
16.11 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> coding

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Николай Байбородин

/ baiborodin@gmail.com /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Осторожно, двери открываются

Собираем недешевый дорген на C#

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

Введение для чайников

Оченькраткоогенерациидорвеевдлятех,ктоещеневтеме.Итак,дорвей (doorway)илипростодор.Этовеб-страница,черезкоторуюможнопопасть надругиестраницытогожеилидругогосайта.Еслитызасталзарождение рунета,тонавернякапомнишь,чтобольшинствовеб-сайтовоткрывались состраницы,несодержащейничего,кромезаголовка,фуфлыжнойкартинкиииногдассылокнаразличныеверсиисайтаподразныекодировки. Втевременаподдержканесколькихкодировокврамкаходногобраузера былабольшойпроблемой,неговоряужеобавтоматическомопределении кодировки.Этастраницаиестьdoorway.КПДбылнижеуровняплинтуса. Длячегоонатогда?Анидлячего:).Просто,такбыломодно,тенденциивебдизайна,знаетели.

Какимбокомздесь участвуетпоисковаяоптимизация?Подогнатьподособенностиконкретногопоисковогодвижкатолькооднустраницуивывести еевтопгораздопроще,чемвыводитьвесьресурс.Азаполучивстраницув топахпоопределеннымзапросам,можнонаправлятьснеепользователей надругиестраницыресурса.Продолжимфантазировать.Выведявтоптакуюстраницупооченьпопулярномусредиюзверейзапросу,можнопоиметь неслабыйтрафик.Иопять-таки,переправитьпоссылкамнадругиестрани- цысвоегоресурса.Илинепереправить,азаработать,разместиввдорвее ссылкинапроплаченныересурсы.Такмыпостепеннопревращаемсяизвеб дизайнера-бессребреникавматерогопродавцапоисковоготрафика. Продаватьтрафикможнолибосамостоятельно,либочерезпосредников,

чтогораздовыгоднее.Новыбитьсявтопповысокочастотномузапросуи, темболее,удержатьсятам—задачанеизтривиальных.Кудапрощезанять верхниепозициипонизкочастотнымзапросам.Увы,потакомузапросуи посетителейкнампридетгораздоменьше.Следовательно,напродаже трафикамысрубимменьшекапусты.

Выход?Окучиватькакможнобольшенизкочастотныхзапросов,создавая подкаждыйизнихсвойдоривыводяеговтопSERPa.Чембольшедоров, тембольшелавэ—зависимостьпрямая,кактрамвайнаяшпала.Есть, правда,одинвопрос,которыйможетнедаватьспокойноспатьбудущему сетевомуолигарху.«Ачто,еслипользователь,зайдянаdoorway,сбежит оттуда,неперейдянипооднойссылке?».Правильныйвопрос,потомучто юзверьсейчаспошелтертый,пуганыйикудапопало,егонезаманишь.Да иненадо.Потомучтоунасестьтакоечудо,какавтоматическийредирект (исполненныйчащевсеговвидесценариянаязыкеJavaScript),перекидывающийпользователякклиенту,проплатившемутрафикещедотого,как браузеруспеетпоказатьсодержимоедора.

Воттакаянезамысловатаятехнология.Однакотут,какивлюбомдругом деле,необойтисьбезнюансов.Ихмыиобсудим.

Achtung! Грабли!

Первое,чтонеобходимознатьначинающемузаводчикудоров—этатехно- логиявсемипоисковымисистемамиотноситсяктакназываемой«черной оптимизации».Тоестькметодам,которыерасцениваютсякакнарушение

110

xàêåð 05 /113/ 08

Доргеннаоперационномстоле:)

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> codingto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

правилигрыибезжалостнокараютсясистемоймодерациипоисковиков. Еслитвойдорспалили,тооннетольконавсегдавылетаетизтопа,ноизаноситсявчерныйсписокпоисковогоиндекса,зарабатываяпожизненный бан.Надосказать,поисковикивесьмапреуспеливборьбесдорвеямии валятихпачками.Отсюдабезрадостныйвывод—малотого,чтодляприем- лемогодоходанеобходимоиметьнеодиндорвей,ацелуюихсеть,такеще исозданиедорвеевпредставляетсобойнепрерывныйпроцесс.Короче, сизифовтруд.Взаменпопавшихвбанприходитсяпостоянносоздаватьи выводитьвтопновыедоры.

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

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

И тут появляюсь я — весь такой в красном

Конечноже,читательдогадался,ктоунассегоднявролисупермена.Это

—дорген,программа,основноеназначениекоторойзаключаетсявавто- матизациирутинногоиоднообразноготрудапобыстромуиэффективному созданиюдорвеевсучетомособенностейпоисковыхалгоритмов.Каким требованиямдолженудовлетворятьдорген?Чтоондолженуметьделать обязательно,ачтоявляетсявсеголишьданьюмоде?Ответынаэтивопросы должензнатьнетолькотот,ктособралсянаписатьсобственныйдорген,нои тот,кторешилсянаегопокупку.Нижеавторпостаралсяпривестинаиболее полныйсписоквозможностейдоргена.Темнеменее,нестоитдумать,что этоисчерпывающийсписок.Какинестоитпытатьсяреализоватьсразу всеопции.Наиболееэффективныйподход—выбратьважный(наданный моментданномупользователю)функционалиегореализовать.Впоследующихверсияхможнобудетнаращиватьвозможности.Итак,перечень функциональныхвозможностейпрофессиональногодоргенавключаетв себя:

•  стилевоевыделениеключевыхслов; •  использованиетегов<b>и<strong>;

•  использованиезаголовковразногоуровня;

•  использованиетегов<title>,<description>, <keywords>; •  возможностьвыборашаблонаоформлениягенерируемыхстраниц;

•  управлениеалгоритмамивнешнейивнутреннейперелинковкигенерируемыхстраниц; •  управлениеколичествомстраниц,входящихводиндорвей;

•  управлениеобъемомконтента; •  возможностьвыбораисточникаконтентадлягенерируемыхстраниц;

•  наличиегенераторацепейМаркова; •  возможностьуправленияплотностьюключевыхслов;

•  возможностьпоискаключевыхсловиподборапоисковых запросов; •  управлениеиспользуемымиалгоритмамиредиректа;

•  возможностьшифрованияиобфускациипрограммногокода; •  управлениеспискомфидов; •  возможностьавтоматическойзагрузкидоровнавебхостинг;

•  правильноерасположениередиректа(вверхустраницы)независимоотиспользуемогошаблона;

•  возможностьиспользоватьключевыесловавURLстраницы; •  автоматическаяперелинковкадовеев,загружаемыхизпрограммынаразныехостинговыеплощадки; •  возможностьимпортированияспискаключевыхсловиз файла;

•  функциитранслитерации,переводаключевыхсловиуправленияопечатками; •  возможностьсокрытияпоисковогоспама;

•  управлениечастотойиспользованиятеговоформленияна странице.

Список,каквидишь,впечатляет.Дорген,обладающийподобной функциональностью,стоитнеодинкилограммзелени.Утебяже,

приусловиипрямыхрук,естьреальнаямазасделатьегосамостоятельно.А тамуже,какговорится:«Хочешь,ешьморковку,хочешьпо-другомуисполь- зуй»(©ФаинаРаневская).Хочешь—дорыклепай,хочешь—доргеномсво- имбарыжничай.Еслисмыслнекоторыхизперечисленныхфункцийтебене понятен—этолишнийшансуглубитьсвоипознаниявобластипоисковой оптимизации.Ссылкиинтересныхресурсовятебенакидал(смотриврезки).

С чего начать?

Именнотакойвопросзадаетбольшинствотех,кторешилнаписатьсвой собственныйприватныймегарулезныйдорген.Вопросчастоненаходит ответа,адоргентакиостаетсяненаписанным.Сейчасмывместепреодолеемэтотпсихологическийбарьер.

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

CDEjector’a:).

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

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

Интерфейсможешьпостроить,какуменя—илипридуматьсвойвариант. Списокключевыхфразбудетхранитьсявобычномтекстовомфайле.В качестверазделителя—переводстроки(однастрока—однаключевая фраза).Еслиневдаватьсявдетали,алгоритмработынашегодоргена будутследующим.Пользовательпредварительноготовитфайлсключе- вымифразамиифайлсшаблономHTML-верстки.Затемвокнедоргена указываетвсенеобходимыепараметры(путькфайлусключевиками,путьк файлусшаблоном,количествостраницводномдоре,плотностьключевых слов,каталогдлясохранениярезультата).Начинаетсяглавноедейство. Прогаперебираетсписокключевиков,считаетобщееколичествословв заготовленномтекстовомматериале,рассчитываетколичествовхождений ключевикавтекстнаосновезаданногопоказателяплотностиивслучайномлибозаданномпорядкепомещаетключевыефразывисходныйтекст. ВставляемполучившийсятекствHTML-шаблонвсоответствиисзаранее подготовленнойразметкой.Добавляемтеги<title>,<head>исохраняем получившийсяфайл.Повторяемдлякаждойключевойфразызаданное количествораз.

Финт№1.Когдаделодойдетдосохранениянавинтеготовогодорвея, разумнымшагомбудетназначитьключевуюфразу,подкоторуюоптимизироваласьбыстраницавкачествеименифайла.Этоприбавитейвеспри оценкерелевантности.

Финт№2.Сохраняяфайлсдором,заточеннымподключевуюфразуиздвух

xàêåð 05 /113/ 08

111

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> coding

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Дорген:примеринтерфейса Дорвпоисковойвыдаче

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

Теперьошаблоне.ЭтообычныйшаблонHTML-документа,какихвсетидо фигаибольше.Можешьвыбратьтот,чтотебенравится.Авторуприходилось сталкиватьсясдвумяподходамикорганизацииHTML-шаблоноввдоргене. Первый—шаблоны,жесткопрописанныевдоргене.Выборфиксирован

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

{TEXT} — основной текст {SCRIPT} — JS скрипт редиректа

{MAIN_KEYWORD} — кейворд страницы

{RAN_KEYWORD} — случайный кейворд

Итакдалее.Кстати,примерразметкивзятссайтаwww.klikforum.com,где тыможешьрасширитьсвоизнанияпотеориидороводства.

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

Нюансымыобсудили.Пораприниматьсязаработу.

Муки творчества

Начнемсзагрузкиспискаключевыхфраз.Дляэтогохорошоподойдет элементуправленияcheckedListBox.Отпростогоспискаонотличается возможностьювыбораэлементовспомощьючекбоксов.Заполнятьсясписокбудетпринажатиисоответствующейкнопки.Обработчик,ябысказал, непрост,атривиален:

DialogResult result = fileChooser.ShowDialog(); String fileName;

if (result == DialogResult.Cancel)return; fileName = fileChooser.FileName;

if (fileName == "" || fileName == null) MessageBox.Show("Ошибка выбора файла", "Error",

MessageBoxButtons.OK, MessageBoxIcon.Error); else {

input = new StreamReader(fileName); makeKeyList();

}

Смыслнаписанноговыше—вывестидиалоготкрытияфайла,коррект­ нообработатьвозможныеситуацииипередатьуправлениефункции makeKeyList().

private void makeKeyList() { String a = null;

while (!input.EndOfStream) { a = input.ReadLine();

if (a != null) checkedListBox1.Items.Add(a);

}

input.Close();

}

Другимисловами,читаемфайлдоодурения(доEndOfStream)иподсовываемстрочкикомпонентуcheckedListBox.

Аналогичнымобразомобрабатываемвводостальныхпараметров(подробностисмотривисходникахнадиске).Послетого,каквлистбоксзагружен списокключевыхфраз,нужнореализоватьмеханизмвыбораотдельных ключевиков,длякоторыхбудутсоздаватьсястраницы:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e){

String item = checkedListBox1.SelectedItem.ToString();

if (e.NewValue == CheckState.Checked)addKey(item); else remKey(item);

}

private void addKey(String val) {

if (keyList == null) keyList = new ArrayList(1); keyList.Add(val);

}

private void remKey(String val) { keyList.Remove(val);}

Думаю,всепонятно—ключевики,выбранныедлядальнейшегоисполь- зования,хранимвспискеkeyList.Реагируемнадействияпользователя черезсобытиеNewValue.Посколькудикийюзверьнепредсказуемиможет жатьначекбокснетолькосцельювыбратьключевуюфразу,ноиотменить свойвыбор,предусмотренареакциянаобадействия—методыaddKey()и remKey().

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

112

xàêåð 05 /113/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> codingto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

СтраницаВикипедии,посвященнаятехнологиидорвеев

Обработаввсеэлементыпользовательскогоинтерфейса,доргеннаходится,чтоназывается,навзводеиготоввыстрелить. Созданиедорвеевпредставляетсобойпоследовательный процесс.Нижеяперечислилегоосновныеэтапы:

1.ЧитаемвтекстовуюпеременнуюHTML-шаблон;

2.Читаемвтекстовуюпеременнуютекстдора;

3.Читаемвтекстовуюпеременнуютекстредиректа;

4.Перебираемвциклеключевики;

4.1.Длякаждойключевойфразырассчитываемколичество повторов;

4.2.Формируемзаголовки;

4.3.Разбавляемосновнойтекстключевымифразами;

4.4.Парсимшаблон,заменяяметкисоответствующими элементами;

4.5.ГенерируемимяисохраняемHTML-документ. Исходныйтекстэтогоалгоритмаслишкомобъемен,чтобыего

публиковатьвжурнале,поэтомуизучайисходник,выложенный надиске.Остановимсянареализацииосновныхмоментов. Дляформированиясодержимогодоранеобходимоисходный текстразделитьнаотдельныелексемы(слова)ипосчитать ихобщееколичество.Исходяиззаданнойпользователем плотности,рассчитываемколичествоповторовключевой фразыилислова.Теперь,знаяколичествоповторовфразыв тексте,нужноеетамразместить.Будетуместнымиспользоватьалгоритм,позволяющийполучитьтекст,наиболееточно соответствующийестественному.Небудемничегоусложнять

—нашацельосвоитьобщуюконцепциюсозданиядоргенов. Обойдемсяобычнымравномернымраспределениемпотексту.

String[] lex = content.Split(); int lexCount = lex.Length;

int keyTotalAmount = (int) (numericUpDown2.Value / 100 * lexCount);

if (keyTotalAmount != 0) {

int step = (int)(lexCount / keyTotalAmount); for (int k = 0; k <= keyTotalAmount; k++) {

if (step <= lex.Length) {

lex[step] = (String)keyList[i]; step += step;

}

}

}

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

Кактолькотекстбудущегодорвеясформирован(кстати,наэтом этапенеплоходополнительнопредусмотретьвставкутегов <h>,<i>, <b>),работаемсключевойфразойдляповышения значимостиключевика.Думаю,тысправишьсясамостоятельно.Чтобывставитьвсоответствующиепозициишаблона нужныеэлементы,можноприкрутитьстандартнуюфункцию Replace(),котораязаменяетодинфрагменттекстадругим:

template = templ.Replace ("#title", (String)keyList[i]);

template = template.Replace ("#header", header);

template = template.Replace ("#redirect", redir);

String newText = "";

for(int k = 0; k < lex.Length; k++) newText = newText + " " + lex[k];

template = template.Replace ("#text", newText);

Все,дорготов.Осталосьзаписатьеговотдельныйфайл, повторитьперечисленноевышен-ноеколичестворазвсоот- ветствиисколичествомстраницдорвея,указаннымпользователем,иперейтикследующейключевойфразе.

Незабудьприсвоитькаждомуфайлууникальноеимя,правильноесточкизренияпоисковойоптимизации(включающее всебяключевуюфразу).

Гонка вооружений

Рассмотренныйвстатьедорген—всеголишьдемонстрация концепции.Тыможешьсовершенствоватьегопрактически бесконечно,оттачиваянавыкисозданиясофтадляпоисковой оптимизации.Ещеразпосмотринасписоктого,чтодолжен уметьидеальныйдорген.Постарайсяоценитьегоспозиции разработчикаиначинайдействовать.

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

И,самоеглавное,начнисампользоватьсясвоимдоргеном. Тогдатыточнобудешьзнать,какаяфункциональностьему действительнонеобходима.z

dvd

Тебе легче вкурить тему ковыряясь в исходниках, чем читая описание алгоритмов и принципов работы программы? Нет проб­ лем — на диске тебя ждет дорген из статьи в виде проекта для

Visual Studio 2008.

warning

Помни, что использование дорвеев всеми без исключения поисковиками относится к методам черной оптимизации и жестоко карается исключением из индекса с одновременным внесением в black list.

Привыбореплотностиключевыхсловнастраницеважнособлюдать

 

Однаизсерьезныхпроблем—контентдлянаполнениядора.Самый

 

золотуюсередину.Заниженнаяплотностьсделаетключевикневи-

 

простойспособ:позаимствоватьсродственногоресурса.Онжеи

димым—понизитрелевантностьстраницыпозапросам,вкоторые

 

самыйнеэффективный.Деловтом,чтопоисковикидавнонаучились

онвходит.Слишкомвысокаяплотность—прямойрискпопасть

 

распознаватьифильтроватьдубли,склеиваярезультатывыдачи.Вы-

подкатегорию«поисковыйспам»изаработатьбанотпоисковика.

 

ход—использоватьсистемыавтоматическогоперевода(прогнать

Устанавливайнаиболееэффективнуюплотностьопытнымпутем,

 

текст«туда—обратно»).Илипридатьуникальностиспомощью

ориентируясьнапоказатель6-8%.

 

генераторатекстанаосновецепейМаркова.

xàêåð 05 /113/ 08

113

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

to BUY

 

 

w Click

 

 

 

>> coding

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Крис Касперски

трюки открыса

Долгое время мы витали вокруг чистого ANSI C, без реверансов в сторону нестандартных расширений от различных производителей, которых развелось столько, что игнорировать их невозможно. Сегодня мы поговорим об интимных взаимоотношениях Си с платформой .NET и управляемым (managed) кодом.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

01управляемыйкоднаСи

Официальноплатформа.NET«крышует»C#,F#,VisualBasicинекоторыедругиеязыки,впереченькоторыхСи,увы,невходит.ОднакопоследниеверсиикомпилятораMicrosoftVisualC++поддерживаютвозможность трансляциипрограммвуправляемыйбайт-код(по«научному»называемый

MSCIL—MicrosoftCommonIntermediateLanguage—ОбщийПромежуточный ЯзыкотMicrosoft,ноэтослишкомдлинноизаумно,такчтомыограничимся термином«байт-код»).

Еслисделатьнебольшойпируэт,томожнописатьСипрограммынаплюсах, транслируяихвбайт-код.Конечно,«чистого»Симывсеравнонеполучим, но,покрайнеймере,обретемвозможностьвызыватьфункциистандартной библиотекиlibc,«химичить»суказателямиит.д.Естественно,всилустрогойтипизацииязыкаСи++придетсяругатьсяматом(нецензурнымкастингом),впрочем,обэтоммыужеговорилив#09hвыпуске«трюков».

Чтобызаставитьприплюснутыйкомпиляторгенерироватьбайт-код,достаточно воткнутьвначалопрограммы«using namespace System;»идобавитьккоманднойстрокеключ«/CLR»,примериспользованиякоторогоприведенниже:

hello.cpp—программанаСи++,подготовленнаяктрансляциив управляемыйкодивызывающаяфункциистандартнойбиблиотеки языкаСи

#include <stdio.h>

// используем пространство имен System (из .NET) using namespace System;

void main() {

printf("hello, nezumi!\n");

}

Трансляция указанногокодависполняемыйфайлизкоманднойстроки осуществляетсяследующимобразом:

$cl.exe /CLR hello.cpp

Если все сделано правильно, на диске образуется файл hello.exe, готовый к непосредственному исполнению и победоносно выводящий «hello, nezumi!» на экран.

02управляемыйкодипереполняющиесябуфера

Продвигаяуправляемыйкоднарынок,Microsoftнеустанноперечислялаегопреимущества:а)болеевысокуюпроизводительностьначисто вычислительныхзадачах;б)решениепроблемыпереполняющихсябуферов; в)наличиеавтоматическогосборщикамусора,предотвращающегоутечки памяти.

Чтокасаетсяпроизводительности,топервыеверсии.NET’адействительно обгонялиСи/Си++программывнекоторыхтестахзасчетболеекомпактной структурыбайт-кодаидинамическойоптимизациипритрансляциивпамять. Ноуженачинаяс.NET2,производительностьбайт-кодазаметноупалаи положениеспасаеттолькото,чтобайт-кодспособенбезперекомпиляции исполнятьсянапроцессорахразныхтипов(x86,x86-64,IA64),используяих преимущества,чегонеможетчистыймашинныйкод.

АвотконтрользабуферамиисборкамусорареальноработаюттольковC# программах(даитонебезоговорок).«Управляемый»код,полученныйпутем трансляцииСи++программы,наследуетвсехудшиечертыязыкаСи.Этомы сейчасипродемонстрируемнапримереумышленногопереполнениябуфера:

Программа,подготовленнаяктрансляциивуправляемыйкод идопускающаяпереполнениебуфера

#include <stdio.h> #include <string.h> using namespace System;

void main(){

char buf0[0x6]; char buf1[0x6]; char buf2[0x6]; printf("enter str0 :");gets(buf0); printf("enter str1 :");gets(buf1); printf("enter str2 :")123;gets(buf2); printf("your str is :%s,%s,%s\n",buf0,buf1,buf2);

}

Компилируемнаписаннуюпрограммувуправляемыйкодспомощьюключа /CLRисмотрим:сможетлионасправитьсясошибкойпереполненияилинет. Мыимеемтримассивапо06hбайткаждый,кудавводимстрокидлиннойв 09hбайт(этавеличинавыбранапроизвольно).

114

xàêåð 05 /113/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Результатнезаставляетсебяждать:

$hello-over.exe enter str0 :111111111 enter str1 :222222222 enter str2 :333333333

your str is :1111111122222222333333333,222222223333333 33, 333333333

Каквидно,вbuf0«магическим»образомпопаливсетристроки.Вbuf1

—втораяитретьястрока;buf2выглядитнеповрежденным,нозатирает находящиесязанимданные(которыхвнашемслучаенет).Вобщем,все происходиттак,какиследовалоожидать.Буферапоследовательноразмещаютсявпамяти,апереполнениеодногоизнихвоздействуетнапоследующие.Взащитууправляемогокодаупомянемневозможностьподмены адресавозвратаизфункции,аточнеенетривиальнойэтойоперации,посколькуархитектуравиртуальноймашины(сучетомкомпиляциичастикода впамять)чрезвычайнозапутанаиреализоватьцеленаправленнуюатакус захватомуправлениянамногосложнее.Такчтокакой-тосмыслвуправляе- момкодевсежеесть,ноутечкипамяти—этокошмар!Управляемыйкод,не обремененныйискусственныминтеллектом,неможетотличитьситуацию «выделилпамятьизабылосвободить»от«выделилирешил(пока)не использовать».Сборщикмусорареально«отлавливает»лишьнебольшую частьошибок,когдауказательнадинамическуюпамятьприсваивается локальнойпеременнойфункциии«погибает»вместеснейпризакрытии стековогофрейма.Стоитфункциипередвыходомпередатьэтотуказатель кому-тоещеилисохранитьеговглобальнойпеременной—все!Сборщик мусораегонетронет.

03смесьуправляемогоинеуправляемогокодов

Приложения,критическиекпроизводительности,атакжепрограммы,взаимодействующиес«внешним»миром(например,оборудованием), пишутсянасмесиуправляемогоинеуправляемогокодов.Ксчастью,язык C#позволяетвызыватьуправляемыемодули,написанныенаСи++,из которыхвсвоюочередьможновызывать«нативные»(native)функции, компилируемыевмашинныйкод.

Формально,виртуальная.NET-машинаподдерживаетмеханизмP/Invoke, предназначенныйдляпрямыхвызововнативногокода,новязыках С#/Cи++онреализованнелучшимобразомидлярешенияпоставленной задачиприходитсясовершатьбольшоеколичествотелодвижений.Номы небоимсятрудностей!

ДляначаланапишемСи++программу,предназначеннуюдлякомпиляции вмашинныйкод.Внейнетничегосложногозатемисключением,чтовсе «экспортируемые»строкидолжныбытьпредставленывформатеUnicode:

nativecode.cpp—Си++программа,предназначеннаядлякомпиляции вмашинныйкод

#include "string.h" #include "nativecode.h"

void native_foo(wchar_t* c, int num)

{

wchar_t* s = L"hello, this is native code!"; wcsncpy_s(c, num, s, wcslen(s));

}

Тутжесоздадимзаголовочныйфайл(nativecode.h)спрототипомфункцииnative_foo(),включаемыйвостальныефайлыпроекта:

void native_foo(wchar_t* c, int num);

ТеперьпишемСи++программу,транслируемуювуправляемыйкодивызывающуюнашунативнуюфункциюnative_foo(),чтодостигаетсязасчет использованияконструкции«ref class CPPClass»:

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> coding to BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

clrcode.cpp — Си++ программа, подготовленная к трансляции в управляемый код и вызывающая нативную

функцию native_foo()

#include "nativecode.h" using namespace System;

namespace souriz { ref class CPPClass { public:

static String^ foo_wrapper()

{

wchar_t c[0x69];

native_foo(c, sizeof(c) / sizeof(c[0])); return gcnew String(c);

}

};

}

ОстаетсятолькозаточитьC#программу,вызывающуюметодfoo_ wrapper()изСи++программы.Всвоюочередьметодвызываетнативную функциюnative_foo() —чтоосуществляетсяпосредствомконструкции

«CPPClass.foo_wrapper()»:

program.cs—программанаC#,вызывающаяметодfoo_weapper()из управляемогоСи++кода,которыйзатемвызываетнативнуюфункцию native_foo()

using System; using souriz;

namespace nezumi

{

class Program

{

static void Main(string[] args)

{

String s = CPPClass.foo_wrapper(); Console.WriteLine(s);

}

}

}

Атеперьсобираемвсеэтовместеспомощьюследующегокомандного файла:

make.bat—командныйфайл,собирающийвсефайлыпроектавое- дино

$cl.exe /c /MD nativecode.cpp

$cl.exe /clr /LN /MD clrcode.cpp nativecode.obj $csc.exe /target:module /addmodule:clrcode.netmodule Program.cs

$link.exe /LTCG /CLRIMAGETYPE:IJW /ENTRY:nezumi. Program.Main /SUBSYSTEM:CONSOLE /ASSEMBLYMODULE: clrcode.netmodule /OUT:mix.exe clrcode.obj nativecode. obj program.netmodule

Еслисборкапрошлауспешно,надискеобразуетсяmix.exeфайл,заглянув вкоторыйдизассемблером,мыувидимсмесьуправляемогоинеуправляемогокодов.Проблемавтом,чтоIDAPro(самыйпопулярныйхакерский дизассемблер)неподдерживаетсмешанныйрежимипоказываетлибо машинный,либоуправляемыйкод,взависимостиотнастроек,выбранных ещенастадиизагрузкиисследуемогофайлавбазу.Апотомунаписание «смешанных»программ—хорошийзащитныйприем,существенноза- трудняющийанализ(большинствоначинающиххакероввообщенеувидят машинныйкодв.NETсборкеибудутдолгогадать,какжевсеэтоработает). Отладка«смешанных»программ,несодержащихотладочнойинформации (поумолчаниюонанегенерируется)—вообщекошмар,серьезнонапря- гающийдажегуру.z

xàêåð 05 /113/ 08

115

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

>> phreaking

 

w Click

to

 

 

 

 

 

 

 

 

 

m

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

g

 

 

 

 

 

 

 

df

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Артемий (Di Halt) Исламов

/ di_halt@mail.ru /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПолторадесяткамобильныхаккаунтовнаоднойSIM’ке.

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

танные операторы. Вот и приходится регистрироваться у кучи разных ОПСОСов и таскать с собой тьму SIMкарт. Сначала я ныкал их под крышкой аккумулятора, но потом надоело. Стал искать другие пути. Как оказалось, наработок немало.

Сокровища гопорынков

Пошаривпоместнымгоповникам,торгующимсотовымиивсякими прибамбасамикним,янаткнулсянанесколькорешений.Первое,одноиз самыхпримитивныхидревних,этовыносSIM-картпосредствомгибкого шлейфаизтелефонанаружу,внакладнойзадник.Сампонимаешь,выгля- дитэтооченькоряво—накладкапортитвесьдизайн.Естьивторойвари- ант—болеекомпактный,носутьтаже.БерутсядвестандартныеSIM-карты иизкаждойвырезаетсяострыминожницамипятачоксконтактами(под нимнаходитсяпроцессор,аостальнаячастькарты—безмозглыйпластик). Затемпятачкивставляютсявспециальныйпереходник,вкоторомтакже смонтированасхемамультиплексор,переключающаякарточкилибочерез меню,либопосредствомвключения-выключениятелефона(прикаждом on/offпроисходитвыборновойSIM-карты).Получившаясяконструкцияза- совываетсянаместоштатнойSIM-ки.Методхорош,нотребуетпрямыхрук, даиневкаждыйтелефонможнозапихатьподобнуюфиговину.Например, вмойSiemensSK65онабанальноневлезет—слишкомузкийиплоский картодержатель.Ктомуже,максимальноечислокарт,которыеможнотуда запихать,равняетсядвум.

Самыйпродвинутыйспособ—использованиеMultiSIM.Например,очень популярнаSilverCard.ПредставляетизсебяобычнуюSIM-ку(только серебристогоцветаибезопознавательныхзнаков).Привставкевтелефон появляетсядополнительноеменю,гдеможновыбратьнакакойномер переключиться.ВсеговSilverCardможнозабитьотдесятидошестнадцати аккаунтов,взависимостиотверсиипрошивки.ТакжесуществуетGreen Card,A-SIMипрочиеаналоги.Различиемеждунимилишьвколичестве ячеек,размерезаписнойкнижкииколичествезапоминаемыхSMS.

Как это работает

Чтобыпонять,чтопредставляетсобойSIM-карта,нужноразобратьпроцесс аутентификациивсети.Внутрикрошечнойсимкинаходитсядовольно мощныймикроконтроллер,какправило,PIC,сосвоеймикрооперационной системой,специфическиминтерфейсоминаборомфункций.Последних тамнемного—чтениеизаписьвпамять,выдачасообщенийнаэкранте- лефона,манипуляциисопределениемномераи,главное,генерациякодов длядекодированияголосовогопотокаиаутентификациивсети.SIM-карта имеетсвоеобразнуюфайловуюсистему,хранящуювсебекучуслужебной информации,атакжеSMSсообщенияикодыдоступавсеть—International MobileSubscriberIdentity(IMSI)иKeyforidentification(Ki)коды.

IMSIиKiхранятсявSIM-картеиуоператора(этокаклогинипароль). Упрощеннопроцедурарегистрациивсетивыглядитследующимобразом. МобильныйтелефонпередаетбазовойстанциисвойIMSI-код.Вответ станциягенерируетслучайноечислоиотсылаетеговтелефон.Телефон передаетэточисловSIM-карту,гдепроцессоркартыпропускаетегои Ki-кодчерезхэшалгоритм.ОдновременноэтослучайноечислоиKi, связанныйсданнымIMSI,проводитсячерезтакойжеалгоритмнабазовой станции. ЗатемSIM-картаотдаетхэштелефону,атототсылаетегонабазо- вуюстанцию,гдепроисходитсверкасхэшем,полученнымпривнутреннем прогоневыданногослучайногочислаиKi.Есличисласовпадают,значит

—абоненттотсамыйипроисходитрегистрациявсети.Хэшсохраняется

впамятителефонаибазовойстанциивкачествеключадлякодирова- нияидекодированияголосовогопотока.Каквидишь,Ki-кодникогдане покидаетнибазовуюстанцию,ниSIM-картуивыдратьегооттуданапрямую практическиневозможно.Точнее,способесть,носвязанонстакими дикимизатратамиденегивремени(осуществляетсяпосредствомспиливаниякристаллапроцессоранаспецоборудованииинепосредственного считыванияизпамятивобходCPUконтроллера),чтоврядлисэтимкто-то будетзаморачиваться.

ДляклонированияSIM-картынужнознатьиIMSI,иKiкоды.Чтожеделать

втакомслучае?Ответпрост—брутфорс.Хэшалгоритмнеидеаленив большинствеслучаевудаетсявычислитьKi-кодпоответамSIM-карты. Проблемавтом,чтоSIM-картаобладаетограниченнымчисломобращений калгоритмугенерациихэша.Послеихисчерпаниясимкаблокируетсянамертво,итыможешьсмелосмытьеевунитаз,алучшепойтиснейкоператоруи,прикинувшисьшлангом,сказать,чтовдругсломалась.Свероятно-

116

xàêåð 05 /113/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

.c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

 

 

 

 

F

 

 

 

 

 

t

 

 

 

 

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

P

 

 

 

 

NOW!

o

 

>> phreaking to BUY

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

 

 

 

 

.

 

 

 

 

.c

 

 

 

 

 

 

 

p

 

 

 

g

 

 

 

 

 

 

 

 

 

df

 

n

e

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Списокрадиодеталей. Можешьснимидтинарадиорынок иливмагазинрадиодеталей.Там тебяпоймут:).

Резисторына0.125Вт(можноина0.5Вт, нонежелательно)номиналом:

2.2КилоОм—1шт.

10КилоОм—4шт.

15КилоОм—1шт.

22КилоОм—1шт.

1МегаОм—1шт.

Конденсаторыкерамические:

33ПикоФарады—2шт.

100НаноФарады—2шт.

Конденсаторыэлектролитические: 470МикроФарад25вольт—2шт.

Диоды:

1N4148илианалог—3шт.

Светодиод:

Любойизмаленьких.На3.5вольта.

ТранзисторыКТ3102Д—1шт. Кварцна3.579545МГц—1шт. Микросхема74HC04—1шт.

Такжеприкупистандартнуюрозетку COMразъема—DB-9илиоторвиееот древнеймыши.

ВидыMultiSIMкарт. стелефоначерезменюшку.

спискахтелефонавнесенные

 

 

Китайцыкаквсегдаподсуети-

внееномераипозволяет

 

Отличаютсяколичеством

лисьивыпустилисвойаналог

переключатьномерапо

 

встроеннойпамяти.Вкласси-

Silver/Greenкартподназвани-

хоткеям(например,1111

 

ческомSilver’е—64килобай-

емSIMMAX.Перешитьили

ивызов—переключитьна

 

тапамяти,уGreen—128,у

изменитьвнихпрошивкууже

первыйномер;2222ивызов

SilverCard—наиболее

Green2—аж256.Количество

нельзя,нозатоиотпользо-

—навторойномеритак

распространеннаяплатфор-

памятивлияетлишьначисло

вателятребуетсяминимум

далее).Количествофункций

ма,приэтомсовершенно

сохраняемыхномеровиSMS.

телодвижений—вседелается

постепенноувеличивают,так

открытая.Онажеявляется

КартыGreenвстречаются

либостелефона,либочерез

какразработчикинестоят

самойдешевойипереклю-

крайнередко,таккакпракти-

специальныйreader,обычно

наместе.Аещеисправлен

чаетсябыстреевсех.Лишена

ческиполностьювытеснены

идущийвкомплекте.

баг,из-закоторогоSilverCard

некоторыхфишечек,впрочем,

картамиGreen2.

Нуи,конечно,нестоитзабы-

иееаналогиотказывались

думаю,ихможнореализовать

Ещесуществуетт.н.Gold

ватьпронашуроссийскую

работатьвнекоторыхНокиях.

программно,простоникто

Card—новниманияонане

разработку—штукупод

Изнедостатков:переключе-

толкомнезанялся.Построена

достойна,таккак,во-первых,

кодовымназваниемА-SIM.

ниечерезменюсталонаодин

наконтроллереPIC16ифлеш

изначальноимеласлишком

Отпривычныхсильверовот-

пунктглубже.Некоторыете-

памятисерии24Lxx.Прошив-

малопамяти(16килобайт),а

личаетсятем,чтодляработы

лефоныперезагружаютсяпри

куможнобеспрепятственно

во-вторых,прошивкудлянее

снейдостаточнообычной

смененомера,причем,этоне

слитьилизаменитьдругой.

такинедовелидоума.Для

читалки.Самакарточкачуть

баг,афича(разработчикиА-

Можномодифицироватькак

прошивкиэтихкарточекнуж-

тоньше,чемстандартная

SIMсчитают,чтотаккоррект-

душеугодно,конечно,если

ноиспользоватьспециальный

SilverCard,азначит,еепроще

нее).Наотдельныхмобилах

квалификациихватит.Обыч-

программатор,чтоосложняет

резатьдлявставкивпере-

сменаномерапроисходит

нонаSilverCardвкручивается

ихиспользование.Впрочем,

ходник2in1.Поддерживает

вразыдольше,чемнаSilver

что-либовродеSim-Emuv6.1

еслитебеудастсякупитькар-

функцию«тайнойзаписной

Card.Крометого,А-SIM—это

илианалогов.

точкуспрошивкойнениже

книжки».«Тайнаякнижка»

закрытаяплатформа,шалов-

КартыGreenиGreen2

SimEmuv6.1,товседействия

недаеттелефонусохранять

ливыеручонкисдебаггеромв

—модификацииSilverкарты.

можнобудетпроводитьпрямо

висходящих/входящих

нееуженезапустишь.

xàêåð 05 /113/ 08

117

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> phreaking

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

SimReaderвсборе.Разъемдлякартывыдраниз

Нокии3110

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

haveдлялюбогогика.Такчтовопрособизготовленииподобнойштуковины долженбытьрешеноднозначно.

Что мне за это будет?

Надосказать,опсосынеособоприветствуюттакоеиспользованиекарт. Понятьихможно,онилишаютсяпотенциальнейприбыли,таккактыможешьпозвонитьсдругогооператора,когдатебеэтовыгодней.Ноонини- чегоинетеряют,таккаккаждыйаккаунтпо-прежнемуимеетсвойбаланс итывынужденкластьтудабабло,чтобыобщаться.Поэтомукатегорически противневыступают.Даивотличиеотбанковскихсмарт-карт,SIM-ка являетсясобственностьюабонента,азначит,тыможешьделатьснейчто угодно.ФормальноиспользованиеMultiSIM—тожесамое,чтотаскание кучиSIM-картвкармане,толькоболеетехнологичное.Единственное, чтовызоветзаконноевозмущение—этоодновременноеиспользование

Multisimmenu оригиналаидубликатакарты.Вэтомслучаесбольшойвероятностью заблокируютаккаунт,итебепридетсяидтивабонентскийотделиполучать новуюSIM-картусдругимнаборомIMSI-Ki.

стью,близкойк100%,тебевыдадутновую(нахалявуилизаминимальную плату),астаруюзаблокируют.Ноневсетакстрашно,картапозволяет65536 обращений,адляподбораKiэтого,какправило,болеечемдостаточно.

Правда,существуетоднатонкость,аименно—хэшалгоритмовнаданный моментиспользуетсядвавида:COMP128v1иCOMP128v2.Первыйлегко поддаетсявзлому,авотвторойпоказабрутфорситьнеудалось.Впрочем,еслисильнозахотелосьпоиметьвмультисимкекартунаалгоритме СОМР128v2,томожносделатьфинтушами—вырезатьизSilverCardпятак спроцессоромивставитьеевблокдваводном,напаруспроблемной.

Зачем?

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

Сколькоразмультисимкавыручаламеня,когдавдругкончалосьбаблона основномномере;когданеловилоператор;когдавданнойзоненаотрез отказывалсяработатьGPRS,асрочнотребовалсядоступвИнет.Даи запуститьзалоченныйдевайс,привезенныйиз-забугра,невмешиваясь вегопрошивку,например,тотжеiPhoneиликакой-нибудьредкийили новомодныйтелефон,PCMCIAGSMModem,выданныйнахалявуваме- риканскомотделенииT-mobile…Короче,ясчитаю,чтоMultiSIMэтоmust

Как? Где? Чем?

Итак,тырешилсясделатьсебемультисим.Счегоначать?Надыбатьсаму MultiSimкарту.Можнопоискатьнарадиорынках,можно—вонлайнмага- зинах(набери,вЯндексе«SilverCard»или«Multisim»).Яжесвоюкупилв каком-тополуподвальномшопе,торгующемподержаннымимобилами.Я простоподошелиспросил,неделаютлионимультисимки.Оказалось,де- лают.Вотунихикупил—вышлодороже,чемуказановинете,нодешевле, учитываястоимостьпересылкидоЧелябинска.Главное,чтобымультисимкабыласпрошивкойSimEmuненижешестойверсии,таккакиначеможно нарватьсянапустуюболванкуидолгоискатьпрограмматор.Этотвопрос нужносразууточнитьупродавца.Всреднем,адекватнаяценазаMultisim Card—250-500рублей,взависимостиотмодели.

Допустим,карточкутыдостал.ОстаетсяраспотрошитьсвоиSIM’ки, выдратьизнихзаветныекодыизабитьихвMultiSIM.Можно,конечно, поручитьэтомутнымдядькамсрадиорынкаилииздругихподозрительных конторок.ЗаграблениеоднойSIM-картыониберутпорядкастарублей. Вроденедорого,однакоинформациядлядоступактвоемумобильному аккаунтупопадетвтретьируки—большоезападло!

Поэтомуломатьбудемсами.ТебепотребуетсячиталкаSIM-картисофтина брутфорсер.Вкачествесофтаяиспользуюпровереннуювременем SimScan,ноонадовольномедленная,поэтомулучшезаюзатьболее

118

xàêåð 05 /113/ 08

Соседние файлы в папке журнал хакер