Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Где серийник?
Посл.ответ Сообщение

Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 22 сентября 2007 02:30 · Поправил: Gerpes
· Личное сообщение · #1

Есть прога(чисто женская ) но отломать надо: UPX какой-то непонятный был, PEID, QUnpack в недоумении, китайский VMUnpacker вроде распаковал (вручную ваще непонять было...- Import REConstructor зависал просто.)
Оля в непонятках- (и я )- бряк на мессагу не катит, процу нашел примерно- с 481F5 и глубже. можно докопаться, но неясно- в стеке серийника нет, ваще похожего мало , ниче не пойму. мож, визуал бэйсик? но и то, не уверен, что так замучено.(Не на делфи точно.) хрень какая-то, виснет еще , бывает.
Создает файло dat, триал в нем прячет, и юзеров, но это, думаю, роли не играет, убивать проверку надо в екзешнике.
http://www.rapidshare.ru/409933 http://www.rapidshare.ru/409933 - распакованное файло. (~1 Мб)
Вопрос:
Может, кто сталкивался с подобной хренью?, Как быть дальше, не знаю... - цикл окна с паролем ничего не дает(вернее, бряк на выходе.)все внутри- на первый взгляд кажется.
Цель- не обязательно полноценный отлом защиты, хотя бы зарегить. (отлом хотелось бы для общего развития, не более)



Ранг: 21.1 (новичок)
Активность: 0.030
Статус: Участник

Создано: 22 сентября 2007 11:55
· Личное сообщение · #2

Gerpes, может выложишь запакованную, а то для меня и 1 mb проблема. ( только не рапид, лучше ifolder)



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 22 сентября 2007 14:53
· Личное сообщение · #3

Нет смысла- она раром пожатая меньше на несколько Кб, чем нераспакованная, тоже рар-архив.
Перезалитьмогу.
slil.ru/24886524
ifolder.ru/3442798



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 сентября 2007 22:03
· Личное сообщение · #4

попробуй:
qwerty
12941636593

на моем компе работает, если нет привязки к железу то будет работать
иначе лови вызов
Address=0048A330 Type=Export Name=VB_RuntimeMsgBox

и впереди ищи сравнение паролей, там в открытом виде все



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 сентября 2007 23:17
· Личное сообщение · #5

кстати, посмотреть хотел версию 2.3 с ихнего сайта, антивирь сказал при установке
"trojan horse PSW.OnlineGames.KJP"
правда на твой файл не ругался. Что это за хрень?



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 02:11
· Личное сообщение · #6

может, сайт заразный? хз.
ща попробую, но про "лови вызов" не понял лодом..



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 02:21
· Личное сообщение · #7

Если, можно, поподробнее, с подобным не сталкивался, ключ Tolkin не подходит, не пойму никак, мля, даже неудобно как-то...
Помогите ,кто понял, в чем тут дело!! плиз!!!



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 02:26
· Личное сообщение · #8

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



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 23 сентября 2007 10:49
· Личное сообщение · #9

Tolkin пишет:
qwerty
12941636593

Для моего компа такие же ключ.
Только я по другому ловил. Ставишь бряк на GetWindowTextW. Смотришь когда считается введенный серийник. Немного трассируешь. Где-то до первого ret. И ищешь в окне стека пароль. Я нашел две подозрительные строчки "12941636593" и "1294163659343219". Первая подошла.
Данные о регистрации хранятся в файле TOC.dat.
Попробуй мой использовать. Пользователь "11", пароль "11".

9129_23.09.2007_CRACKLAB.rU.tgz - TOC.dat



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 23 сентября 2007 18:40
· Личное сообщение · #10

Вот здесь происходит сравнивание паролей, можно подсмотреть, а можно и пропатчить переход и любые пароли подойдут

00D8836A E8 81B46FFF CALL TOC_unpa.RuntimeStringCompare
00D8836F 8BA5 5CFDFFFF MOV ESP,DWORD PTR SS:[EBP-2A4]
00D88375 8985 3CFEFFFF MOV DWORD PTR SS:[EBP-1C4],EAX
00D8837B 33C9 XOR ECX,ECX
00D8837D 3BC1 CMP EAX,ECX
00D8837F 0F94C2 SETE DL
00D88382 83E2 01 AND EDX,1
00D88385 8895 46FEFFFF MOV BYTE PTR SS:[EBP-1BA],DL
00D8838B FFB5 48FEFFFF PUSH DWORD PTR SS:[EBP-1B8]
00D88391 E8 4A0D7EFF CALL TOC_unpa.RuntimeUnlockString
00D88396 8BA5 5CFDFFFF MOV ESP,DWORD PTR SS:[EBP-2A4]
00D8839C 33C0 XOR EAX,EAX
00D8839E 8985 48FEFFFF MOV DWORD PTR SS:[EBP-1B8],EAX
00D883A4 FFB5 50FEFFFF PUSH DWORD PTR SS:[EBP-1B0]
00D883AA E8 A1E378FF CALL TOC_unpa.RuntimeUnlockObject
00D883AF 8BA5 5CFDFFFF MOV ESP,DWORD PTR SS:[EBP-2A4]
00D883B5 33C0 XOR EAX,EAX
00D883B7 8985 50FEFFFF MOV DWORD PTR SS:[EBP-1B0],EAX
00D883BD 8A8D 46FEFFFF MOV CL,BYTE PTR SS:[EBP-1BA]
00D883C3 83F9 00 CMP ECX,0
00D883C6 83E1 01 AND ECX,1
00D883C9 33D2 XOR EDX,EDX
00D883CB 3BCA CMP ECX,EDX
00D883CD 0F84 FD050000 JE 00D889D0



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 20:06
· Личное сообщение · #11

Большое всем спасибо!!!

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



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 20:50
· Личное сообщение · #12

Tolkin
Благодарю , но кусок листинга мне не помог- не смог таких команд найти, у меня Оля, гружу ехешник и смещение вида
004***** показывает, а у тебя что за прога? для екзе не видал такого(пока не видал).



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 23 сентября 2007 21:28 · Поправил: Sturgeon
· Личное сообщение · #13

Gerpes
Это динамически выделяемая память. И у тебя, и у меня эти команды могут быть совсем по другим адресам. И патч их мало что даст. ИМХО.
Чтобы посмотреть эти адреса, выбираешь View->Memory или Alt+M. И выбираешь интересующий тебя диапазон адресов.
Как я писал уже вся ифа о зареганности лежит в файле TOC.dat. То есть ты можешь зарегать прогу и выдать этот файлик нуждающейся девушке ;).



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 23 сентября 2007 22:11
· Личное сообщение · #14

По поводу регистрации уже все сделано.
Есть желание поработать головой еще.
Спасибо за разъяснения, сейчас гляну...



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 24 сентября 2007 00:45
· Личное сообщение · #15

Sturgeon , по ходу прав.

Ничего похожего не увидел - а значит, патч мне пока не светит, т.к. принципа поиска смещения не знаю.
продолжу после...



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 24 сентября 2007 16:55
· Личное сообщение · #16

Gerpes пишет:
принципа поиска смещения не знаю.

Не можешь - научим, не хочешь - заставим!(с)"Давид и Голиаф"
Смысл такой. Динамически выделяемая память представляет собой адреса, которые выделяются в ходе работы программы. То есть если ты выбираешь View->Memory до запуска программы, то ты их и не увидишь. Тебе надо запустить программу. (кстати хорошим уроком будет открыть Memory map до запуска этой программы и после, и сравнить). Запускаешь программу и открываешь карту памяти (View->Memory). Там и увидишь все адреса.
По поводу поиска адресов. Не обязательно искать адреса по их абсолютному адресу. В Оле возможен "поиск по последовательности байт (сигнатуре)". Особенно это актуально при, как раз, динамическом выделении памяти, когда код записывается каждый раз на новые адреса. Смысл такой: нам надо найти команды, которые за нас нашел Tolkin (респект).

00D8839C 33C0 XOR EAX,EAX
00D8839E 8985 48FEFFFF MOV DWORD PTR SS:[EBP-1B8],EAX
00D883A4 FFB5 50FEFFFF PUSH DWORD PTR SS:[EBP-1B0]
00D883AA E8 A1E378FF CALL TOC_unpa.RuntimeUnlockObject
00D883AF 8BA5 5CFDFFFF MOV ESP,DWORD PTR SS:[EBP-2A4]
00D883B5 33C0 XOR EAX,EAX
00D883B7 8985 50FEFFFF MOV DWORD PTR SS:[EBP-1B0],EAX
00D883BD 8A8D 46FEFFFF MOV CL,BYTE PTR SS:[EBP-1BA]
00D883C3 83F9 00 CMP ECX,0
00D883C6 83E1 01 AND ECX,1
00D883C9 33D2 XOR EDX,EDX
00D883CB 3BCA CMP ECX,EDX
00D883CD 0F84 FD050000 JE 00D889D0

После запуска программы ты открываешь карту памяти (View->Memory). Выбираешь "Search". И вводишь в поле HEX ту последовательность байт, которую ты хочешь найти. Ищешь последовательность "33C089858A8D83F933D23BCA0F84". Что это за последовательность байт догадаешься сам. Если последовательность не находится, укорачиваешь ее. И обязательно найдешь. У меня она нашлась по адресам 00CD83C6 и т.п. Где она будет у тебя хз.
Извини, но в подробном разборе серийника я тебе не помогу, так как мне это не по зубам пока (чайник). Если сам чего разберёшь пиши сюда в тему. Даже если ничего не получится, просто рассматривай это как небольшой совет по использованию Оли.
Если я где- то ошибся, прошу "взрослых" поправить меня. Это будет всем новичкам (включая меня) только на пользу.



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 25 сентября 2007 19:24
· Личное сообщение · #17

Не, не получается ,и Wdasm привлекал , но им еще хуже показалось все, полгода не запускал его.
и до ввода серийника, и после, с выходом нехорошего окна, искал , находится только
33 C0 89 85, дальше другое все , имхо, мало этого. HIEW тоже не помог, не нашел... Но HIEW мог и не найти, это же хекс редактор просто.
Бряк на память тоже не дал ничего, только заинтересовало, что после имени юзера он где-то берет ascii "System", может ,и ее привлекает к генерации?? потерялся и не вник...
Потом. в стеке "1294163659343219" - это и есть серийник, только из него отбрасываются последние * цифр. у меня, правда другие были.
Блин, опыта бы поболе...



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 29 сентября 2007 22:13
· Личное сообщение · #18

вот генерация серийника, вроде верно (в C++ я не очень, написал как смог)

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
char name[20];
cout<<"Enter user name : ";cin>>name;
int i=0,sum=0;
while (name[i]) {sum=sum+name[i];i++;}
double y=double(sum);
double x=(abs(sin(y)+cos(y)+tan(y)))*10000000000;
printf( "serial: %.0f\n ",x);
}



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 30 сентября 2007 04:07
· Личное сообщение · #19

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



Ранг: 29.8 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 15 октября 2007 08:01 · Поправил: Grom_
· Личное сообщение · #20

Люди ни че не понятно
Гружу в Оллю - говорит что OEP за границей кода, что возможно файл упакован чем то!
Верю надписи что он распакован(хотя PEiD пишет UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay]).

Прога действительно распакованна ???

Дальше ставлю бряки на функции GetWindowTextA (такие там есть) , но после ввода серийника не брякается. Решил пойти другим путем - отловить кнопку ОК при ригистрации. Но ! не тут то было, ClsProc у кнопки и почти у вольшенства 0xFFFF*, Олля отказывается ставить на такие адреса бряки(еще бы ), их можно как то перевести в реальные адреса расположений кода процедуры ??? .

+ еще заметил какой то таймер там ошивается, бряк на него поставил , дык он давай брякаться постоянн при фокусе на окно (я так понял это спецом масло в огонь), убрал этот бряк.
************
Расскажите по подробнее алгоритм нахождения серийника!
************
ЗЫ только с описанием - почему ищем именно этот код, а не просто - "ищем код 0хляля".

ЗЫЗЫ пробывал найти OEP - не получилось, искал по статьям Void через бряки hr esp-4, QUnpack написал OEP is not correct!.
Решил поискать на наличие GetModuleHandleA (вдруг на С написанно, хотя странно почему там функции VB_RuntimeMsgBox).
Нашел , но как то странно что это может быть OEP( 005A98E5 50 PUSH EAX ):
005A98AE E8 9D180000 CALL TOC_unpa.005AB150
005A98B3 59 POP ECX
005A98B4 FF15 8C6B6600 CALL NEAR DWORD PTR DS:[<&KERNEL32.GetCo>; kernel32.GetCommandLineA
005A98BA 89C3 MOV EBX,EAX
005A98BC 85DB TEST EBX,EBX
005A98BE 74 06 JE SHORT TOC_unpa.005A98C6
005A98C0 031D DCA66800 ADD EBX,DWORD PTR DS:[68A6DC]
005A98C6 8D55 A0 LEA EDX,DWORD PTR SS:[EBP-60]
005A98C9 52 PUSH EDX
005A98CA FF15 D86B6600 CALL NEAR DWORD PTR DS:[<&KERNEL32.GetSt>; kernel32.GetStartupInfoA
005A98D0 F745 CC 0100000>TEST DWORD PTR SS:[EBP-34],1
005A98D7 74 07 JE SHORT TOC_unpa.005A98E0
005A98D9 0FB745 D0 MOVZX EAX,WORD PTR SS:[EBP-30]
005A98DD EB 06 JMP SHORT TOC_unpa.005A98E5
005A98DF 90 NOP
005A98E0 B8 0A000000 MOV EAX,0A
005A98E5 50 PUSH EAX <<<<<<<======================================
005A98E6 53 PUSH EBX
005A98E7 6A 00 PUSH 0
005A98E9 6A 00 PUSH 0
005A98EB FF15 086A6600 CALL NEAR DWORD PTR DS:[<&KERNEL32.GetMo>; kernel32.GetModuleHandleA



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 15 октября 2007 13:40
· Личное сообщение · #21

Sturgeon пишет:
Ставишь бряк на GetWindowTextW. Смотришь когда считается введенный серийник. Немного трассируешь. Где-то до первого ret. И ищешь в окне стека пароль. Я нашел две подозрительные строчки "12941636593" и "1294163659343219". Первая подошла.




Ранг: 29.8 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 октября 2007 11:17
· Личное сообщение · #22

клева , все получилось
при проходе только чуть смутил код работы с плавающей точкой , но ! не остановил.
ЗЫ да.... мне еще учиться и учиться ...... буду учиться


 eXeL@B —› Вопросы новичков —› Где серийник?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати