download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Изкуството да направиш Keygen

Автор
Съобщение
tegote
Нед, 05.08.12, 12:12
Имам програма и няколко ключа за нея. Въпроса е може ли въз основа на тази информация да се направи "прогноза" за следващият ключ , който ще ми поиска дадената програма? Как кракерите публикуват кейгени на чужди програми? Крадят ли ги или намират алгоритъма? Защо някои много търсени програми, които не изискват интернет връзка, остават без кей мейкъри?
programings
Нед, 05.08.12, 14:23
Най-често ги крадат, но професионалните кракери се занимават и с разгадаване алгоритъмът на база на който се генерират ключовете!

Ти сам едва ли можеш да го направиш, тъй като ти трябват доста големи познания в тази област!

3246
Нед, 05.08.12, 18:23

RE: Изкуството да направиш Keygen

” Имам програма и няколко ключа за нея. Въпроса е може ли въз основа на тази информация да се направи "прогноза" за следващият ключ ... „

Не.

anonymous
Пон, 06.08.12, 07:30
Защо не опиташ с нещо от този род: http://dox.bg/files/dw?a=c0414fc30e

 Забележка: ИЗПОЛЗВАЙ САМО ЗА ЗАПОЗНАНСТВО!

редактиран от anonymous на 06.08.12 07:36
редактиран от anonymous на 06.08.12 07:39
tegote
Пон, 06.08.12, 09:37
Не знам какво е това биги, даже гугъл не познава. Само ми беше интересно дали при желание става бързо. Видях един начин, който мисля е по-труден, защото серийния номер се генерира и от hard drive информацията.

ПП: всъщност говориш за Keygener Assistant. Наистина интересно, но с пилешкия си мозък няма да се оправя май.

Цитат
” Този път ще ви покажа как да направите keygen, използвайки SmartCheck информация.
Инструменти и мишена:
SmartCheck 5.0 или по-висока (може да я намерите на http://surf.to/HarvestR или http://iczelion.cjb.net), някакъв език за програмиране (ASM, C, Pascal, Delphi, …), за да се кодира keygen'a. А за мишена ще използваме DL PageASchedule v1.1 (потърсете я на http://www.zdnet.com). Тази програма е кодирана в VB5, затова е перфектната мишена за SmartCheck, един от добрите Numega инструменти. Инсталирайте я в избрана от вас папка и я заредете, за да я разгледате. Виждате досаден прозорец показващ сериен номер и регистрация със съответен ключ. Серийният номер и ключа са различни за всеки компютър (базирани на ID харда ви или нещо от сорта). За моя компютър си имам този сериен номер: 554-370-524.
Подготовка:
Заредете SmartCheck и се уверете, че сте конфигурирали следните условия: кликнете на "Settings" от менюто Program и след това в етикета "Error Detection" - всички позиции трябва да бъдат избрани, от етикета "Advanced" (от предишния етикет) - всички избрани, освен последните три най-отдолу и най-накрая от "Reports" - изберете всичко освен mouse.
Зареждане:
Сега сте готови да започнете. Кликнете на иконата "open" и заредете от папката, където DLPager е инсталиран. След това кликнете на "play" бутона (зелената стрелка от toolbar'а).
DLPager е зареден. Може да видите досадния екран със серийния и три кутийки за въвеждане на регистрационния ключ. Серийният номер се създава от вашата hard drive информация и е различен за всеки човек. В системата, която ви представям ще използваме серийния номер който имам: 554-370-524.
Вкарайте произволен регистрационен ключ, аз използвах 111-111-111 и кликнете на регистрация. Програмата ви извежда съобщението "Invalid Key". Кликнете на бутона ОК, след което в SmartCheck съответно на "stop" (червения квадрат от лентата с инструментите) и се съгласете да спрете изпълнението на DLPager.
В левия прозорец на SmartCheck може да видите дълъг списък с резултати. Но повечето важна информация е все още скрита. Изберете от View "Show All Events".
Сега вече имате достъп до всички функции и инструкции използвани от DLPager. Нека вече се захванем със сериозни неща като
 Четене на кода:
В този дълъг списък с инструкции трябва да намерим къде нашият измислен регистрационен ключ се сравнява с верния, затова скрулираме по списъка, за да разберем как ИСТИНСКИЯТ регистрационен ключ е създаден.
От менюто Edit избираме Find. Въвеждаме ключовата дума "invalid" и след това кликаме на "find next". Знаем, че нашият регистрационен ключ със сигурност се проверява точно преди прозорецът със съобщението да се появи. Намирам я на ред 8475 (може да бъде различен на вашия компютър):
«__vbaVarDup(VARIANT:string:"Invalid...»
Добре, ако скрулираме по листинга може да видим един много интересен ред:
«_vbaVarTstEq(VARIANT:Const String:"",VARIANT:String:"866434184"...»
Номерът 866434184 МОЖЕ ДА БЪДЕ различен на вашия компютър. Но това прилича на ИСТИНСКИЯ регистрационен ключ, нали? За да сте сигурни, просто стартирайте DLPager (директно извън SmartCheck) и се опитайте да въведете номера, който намерихте! Bingo, намерили сте вашия номер :)
 Но не искаме само да имаме серийния, защото той ще работи само на нашия компютър, а ние искаме да можем да го дадем на някой друг. Затова трябва да разберем КАК този регистрационен ключ е създаден. И така, нека разгледаме листинга отново.
Как се създава този регистрационен ключ:
Само няколко редове по-нагоре (за мен това е ред 8449) ще намерите интересна инструкция:
«__vbaVarMove(VARIANT:String:"86643418..",VARIANT:String"86643418"»
Гледайки в десния прозорец на SmartCheck (информационния прозорец) ще видите стойността на променливите: : 866434184 и 86643418 (моля не забравяйте, че вашите числа могат да бъдат различни). Инструкцията vbaVarMove (и на предния ред vbaVarTstEq) е само за добавяне на нова характеристика към string'а… Добре, сега вече сме на последната стъпка от създаването на ВЕРНИЯ регистрационен ключ, където последния номер е добавен.
Скрулирайте нагоре, докато не намерите първата стъпка от създаването на този ключ. За мен той започва от ред 7983, точно след теста за дължината на нашия фалшив ключ (111111111).
Сега вече можем да видим какво точно прави програмата. Най-напред се взема първата цифра на ключа, която се зарежда от програмата (554370524), използвайки инструкцията:
«Mid(VARIANT:ByRef String:"554370524",Long 1,...»
Може да видите, че тиретата в номера са премахнати. Веднага след това виждаме друг интересен ред:
«Mid(VARIANT:ByRef String:"HabXndJf...",Long 1, »
ако погледнете в десния прозорец, ще видите пълната стойност на string'а, който е «HabXndJfiqPmKla». Нека продължим надолу с разглеждането на листинга на кода. На следващите два реда се дава ASCII стойност на първия символ на ключа (554370524), а и на този странен string:
«asc(VARIANT:"5") Returns Integer:53»
 «asc(VARIANT:"H") Returns Integer:72»
Точно след тези редове се натъкваме на наистина странна инструкция:
«str(VARIANT:Integer:8)»
Хммммммммм от къде идва този номер? Ако погледнем по-надолу, ще видим, че за 9 числа от номера, подаден от програмата, ASCII стойността се пресмята и същите неща се правят за всичките девет начални символа на "странния" string. Всеки път се появява нов номер и се прибавя към предишния, като по този начин се образува крайния номер на ключа….
И така, почесах се по главата, изпих едно силно кафе и започнах да използвам въображението си (до голяма степен то ви е необходимо, за да краквате или както се казва трябва "да почувствате кода"). Спомнете си първия символ от регистрационния ключ (8). Имаме два ASCII стойности: 53 и 72. Е, тогава нека прибавим цифрите, за да получим тази стойност 5+3+7+2=17! Сега нека отново прибавим всяка една от цифрите 1+7=8!!!
За да сме сигурни нека проверим теорията със следващите няколко стъпки: за втория символ на регистрационния ключ ичач asc(5) и asc(а), които са 53 и 97. Следвайки теорията ми имаме 5+3+9+7=24 и 2+4=6!!! Вторият символ на ВЕРНИЯ ключ е 6, отново потвърждение :)
 Но за да сме абсолютно сигурни, проверяваме и третия: asc(4)=52 и asc(B)=98, следва 5+2+9+8=24, а 2+4=6 и виждаме също, че 6 е третия символ от ключа……значи сме открили трика :)))
Алгоритъмът:
Знаем, че всеки номер от подадения ни от програмата сериен номер (в моя случай 554-370-524) ще бъде свързан с всяка от деветте първи букви на string'а "HabXndJfi". Тогава asc стойността ще се сумира и всяка цифра от нея ще се прибавя, докато не стигнем до едноцифрено число. Също знаем, че странния string (HabXndJfi) разбира се също ни дава същите asc стойности. Може да дефинираме тези фиксирани стойности (нарекох ги "магически числа"):
H=72 --> 7+2=9
 a=97 --> 9+7=16 --> 1+6=7
 b=98 --> 9+8=17 --> 1+7=8
 X=88 --> 8+8=16 --> 1+6=7
 n=110 --> 1+1+0=2
 d=100 --> 1+0+0=1
 J=74 --> 7+4=11 --> 1+1=2
 f=102 --> 1+0+2=3
 i=105 --> 1+0+5=6
А, сега можем да създадем крайния регистрационен ключ.
Основният алгоритъм:
Ключ номер 1 = сумата от всички символи на ascii стойността на (серийният номер 1 + магическото число 1)
Ключ номер 2 = сумата от всички символи на ascii стойността на (серийният номер 2 + магическото число 2)
Моят пример:
За сериен номер имам - 554-370-524
Ключ номер 1: ascii за "5" е 53, 'магическо1' е 9, сумата е 62, ключ1 е 6+2=8
Ключ номер 2: ascii за "5" е 53, 'магическо2' е 7, сумата е 60, ключ2 е 6+0=6
Ключ номер 3: ascii за "4" е 52, 'магическо3' е 8, сумата е 60, ключ3 е 6+0=6
Ключ номер 4: ascii за "3" е 51, 'магическо4' е 7, сумата е 58, ключ4 е 8+5=13, тогава 1+3=4

Вече имам регистрационния ключ: 866-434-184
Кодът keygen
За целта съм използвал QBASIC. Между другото може да създадете свой собствен keygen, без да използвате моя листинг :) Ще ви дам само част от кода, където се изчисля keygen'а:
 ...
INPUT "Въведете своя сериен номер (без -) :"; serial$
 FOR i = 1 TO 9
 REM *** Изчислява се сумата на числата от ascii стойността на всяко число от серийния
c1(i) = INT(ASC(MID$(serial$, i, 1)) / 10)
 c2(i) = ASC(MID$(serial$, i, 1)) - INT(ASC(MID$(serial$, i, 1)) / 10) * 10
 regcode(i) = c1(i) + c2(i)
 REM *** Проверява се дали резултатът е повече от един символ, ако не е се изчислява до един символ.
IF regcode(i) > 9 THEN regcode(i) = INT(regcode(i) / 10) + (regcode(i) - (INT(regcode(i) / 10)) * 10)
 NEXT i
 REM *** Сега се прибавя "магическото число" към всеки номер от този регистрационен код
regcode(1) = regcode(1) + 9
 regcode(2) = regcode(2) + 7
 regcode(3) = regcode(3) + 8
 regcode(4) = regcode(4) + 7
 regcode(5) = regcode(5) + 2
 regcode(6) = regcode(6) + 1
 regcode(7) = regcode(7) + 2
 regcode(8) = regcode(8) + 3
 regcode(9) = regcode(9) + 6
 REM *** и се проверява дали всяка от новите стойности е повече от един символ...
FOR i = 9 TO 1 STEP -1
 IF regcode(i) > 9 THEN regcode(i) = INT(regcode(i) / 10) + (regcode(i) - (INT(regcode(i) / 10)) * 10)
 NEXT i
 ...
Сега трябва само да запишете деветте числа във следния формат ххх-ххх-ххх и keygen'ът е завършен.
Надявам се, че предложената от мен система не е била твърде сложна и неясна :)))

Интересни DOS команди

 Под DOS можете да направите много неща, които не могат да станат с обикновен Windows 9.x (без допълнителни програми).
Тук ще разгледаме някои DOS команди:
1. Ping - под ping се разбира изпращането на Echo Request до друг компютър в мрежата, за да се разбере дали тодй съществува.
Щом другия компютър получи такъв пакет, той е длъжен да отговори на подателия му. С тази цел в DOS е създадена командата
PING. Нейният най - опростен формат е: (параметрите в квадратно скоби не са задължителни)

PING [-t] [-n брой] [-l големина] [-i време на живот] [-w милисекунди] адрес

 Параметрите имат следните значения:
-t - ако е споменат ще се пращат безбройно много пакети докато не бъдът спрени с Crtl+C
-n - това указва колко пакета да се пратят (по подразбиране е 4)
-l - указва големината на пакета (по подразбиране - 32 байта)
-i - тука моджете да кажете през колко рутера или шлиуза максимално да може да мине вашия пакет
-w - колко милисекунди да се чака отговор от всеки пратен пакет

 Ако програмата ви даде съобщение "Requested Timed Out", това означава че или този адрес не съществува или пакета не
 се е върнал (за по-сигурно пращайте по повече пакети и задайте по-голиам период на изчакване за всеки)

Пример:
PING -n 10 -w 10000 212.50.21.123 - това ще прати 10 пакета до 212.50.21.123 като всеки ще бъде изчакан
10 секунди

PING -t -l 5000 212.50.21.123 - в този пример се пращат безкрайно много пакети с големина 5Кb с цел "наводняване"
на връзката

 След като изпйлните командата PING ще получите нещо от сорта:

Pinging 212.50.21.123 with 32 bytes of data:
 Reply from 212.50.21.123: bytes=32 time=1010ms TTL=126
 Reply from 212.50.21.123: bytes=32 time=982ms TTL=126
 Reply from 212.50.21.123: bytes=32 time=1256ms TTL=126
 Reply from 212.50.21.123: bytes=32 time=817ms TTL=126
 Ping statistics for 212.50.21.123:

 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
 Approximate round trip times in milli-seconds:
 Minimum = 817 ms, Maximum = 1256 ms, Average = 1016 ms

Както видждате най-долу има статистика за това колко пакета са били пратени, колко върнати и средното време, за което са
 го направили.

2. Trace - тракинг се нарича проследяването на пътя до даден компютър (през кои адреси минава). Това може да се направи
 по следния начин в DOS:

 TRACERT [-h OPITI] [-w MILISEKUNDI] ADRES

-h - брой опити за търсене на отделните адреси (по подразбиране 3)
-w - времто за чакане отговор на пакета

3. Netstat - Състояние на TCP/IP това е програма за показване на текущото състояние на TCP/IP, тоест за извеждане
 на информация за това кои портове са отворени, на кои има осъществена връзка и т.н.
Няма да ви обясняваме параметрите и. Просто я използвайте по следния начин:

netstat -a

това ще покаже цялостна информация относно TCP/IP
При не съществуваща Интернет връзка ще видите:

Proto Local Address Foreign Address State

 Proto - това е протоколът, с който е осъществена връзката
Local Address показва на кой порт е свързана вашата машина
Foreign Address - портът на отсрещната
State - показва състоянието на връзката (в случайя портовете чакат за Connection Request)

 NETSTAT е удобно средство за откриване на троянци при положение че знаете на кой порт работят. Да кажем че NetBus
изплзва локален порт 12345 следователно ако състоянието на този порт е Listen явно имате зареден троянец
 освен ако не ползувате защитна програма Firewall)

 4. FTP - клиент за File Transfer Protocol Serveriсе

 Чрез FTP.EXE можете да осъществите връзка с FTP компютър. Това става чрез:

FTP ADDRESS

Например: FTP 212.50.21.123

Ако нямате определен account в отсрещната машина пробвайте да се свържете с UserName: anonymous и parola: вашия e-mail

След това най - използуваната комада е: HELP
Нагоре

 Премахване ограничения за достъп

 Това са няколко начина за локално хакване и добиване на достъп ако самият той е ограничен. Това става само като използвате
 един обикновен продукт на Microsoft (Tези примери са за Microsoft Windows 95/98)

Отворете Miсrosoft Word (или Excel, Powerpoin, Access, Outbook). Изберете от менюто "Help", и изберете "Microsoft on the Web".
Сега си изберете/стартирайте някоя от връзките (link). Това ще отвори Internet Explorer. Там където пише "Address" (URL)
напишете C:WindowsExplorer.exe и ще се отвори Explorer.exe. Сега Вие имате достъп до устройствата на машината и всякакви
share устройства.
Отворете Miсrosoft Word (или Excel, Powerpoin, Access, Outbook). Изберете от менюто "Insert" а от него "Hyper link" (или го
 изберете от лентата с бутоните) Там където пише Link to file or URL: напишете C:WINDOWSEXPLORER.EXE (ако искате натиснете
"Browse" на "Files of type изберете All files" (*.*) изберете файла Explorer.exe и натиснете ОК). При стартиране на
 създадения линк вие отваряте Windows Explorer и получавате достъп до устройствата на машината и всякакви share устройства.
Отворете Miсrosoft Word (или Excel, Powerpoin, Access, Outbook). Изберете от менюто "File" а от него "Open" там където се
 показват всички директории и файлове натиснете десен бутон на мишката и изберете "Еxplore" Taka получавате достъп до
 устройствата на машината и всякакви share устройства.
Изчистете Desktop-a от всички прозорци и натиснете бутон "F3", ще се стартира "Find" с което Виеможете да търсите Еxplorer.exe,
 Command.com и др.
Одитете върху бутон "Start" натиснете десен дутон на мишката и изберете "Explore". Taka получавате достъп до устройствата
 на машината и всякакви share устройства.
Натиснте на клавиатурата бутон "Windows key" (бутона между Ctrl и Alt) и натиснете "Е". Ще се стартира Windows Еxplorer.
Натиснете бутон Start от него изберете "Help" от там изберете "Search" и в полето напишете "Control Panel" след това изберете Dail-Up Networking Step4 и натиснете в дясната страна връзката "Click here" (от там можете да си позволите достъп до компютъра)
Отворете Miсrosoft Word (или Excel, Powerpoin, Access, Outbook). Изберете от менюто "Insert" изберете "Object" от него изберете
"Create form File" в полето напишете C:WINDOWSEXPLORER.EXE (ако искате натиснете "Browse" за да намерите желания файл),
натисни "ОК" и ще видите че избрания обект е вмъкнат в документа. Двойно натискане върху него стартира Windows Explorer.
Натиснете бутон Start от него изберете "Run" в полет напишете C:WINDOWSEXPLORER.EXE и натиснете "ОК"
Отидете на Desktop -a натиснете десен бутон на мишката изберете "New", а от там "Shortcut" в полето "Comman line" напишете
C:WINDOWSEXPLORER.EXE и натиснете "Next" като завършите shortcut -а го с двойно кликване на мишката ще стартирате Windows Explorer.
Рестартирайте компютъра и когато се испише "Starting Windows 98" натиснете "F8", ще се покаже едно меню чрез което можете да
 преминете към различни модели на зареждане на Windows -a (по важни от които са: Safe mode, Commadnd prompt, Step by Step). „

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.