Сейчас на форуме: Magister Yoda, rtsgreg1989 (+7 невидимых)

 eXeL@B —› Основной форум —› КейГен для GameGain 2
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 марта 2005 17:30
· Личное сообщение · #1

Дарова! Кто-нибудь ломал GameGain 2?
Вот ссылка: www.pgware.com/ (где-то там )
(и вот ещё, там PE-Compact, но снять его, я думаю, не проблема)
Короче такой код (см. в DeDe орбработчик Form3->Button1Click там будет ф-ия XMLDoc.CopyChildNodes):

0047F854 6A13 push $13
0047F856 680D09759E push $9E75090D
0047F85B 8B45EC mov eax, [ebp-$14] ; tmpstr

* Reference to: SysUtils.StrToInt(AnsiString):Integer;
| ; в eax записывается tmpint (см. алгоритм)
0047F85E E8918DF8FF call 004085F4
0047F863 99 cdq

* Reference to: System.@_llmul;
|
0047F864 E85357F8FF call 00404FBC
0047F869 8945CC mov [ebp-$34], eax
0047F86C 8955D0 mov [ebp-$30], edx
0047F86F DF6DCC fild qword ptr [ebp-$34]
0047F872 83C4F4 add esp, -$0C
0047F875 DB3C24 fstp tbyte ptr [esp]
0047F878 9B wait
0047F879 8D55C0 lea edx, [ebp-$40]
0047F87C B8E4FA4700 mov eax, $0047FAE4 ; в eax записывается '#' (по-моему)

* Reference to: SysUtils.FormatFloat(AnsiString;Extended):AnsiString;overload;
|
0047F881 E8AAA4F8FF call 00409D30
0047F886 8B55C0 mov edx, [ebp-$40] ; в edx записывается реальный(полученный) серийник

серийник должен быть таким: XXXX+yyyy+ZZZZ
XXXX - результат этого кода.
yyyy - кол-во лицензий (я вводил 1).
ZZZZ - любые символы.

Алгоритм такой (delphi).

var
name: string;
i: integer;
tmpint: integer;
tmpstr: string;
begin
for i := 1 to strlen(PChar(Name)) do
begin
tmpstr := IntToStr(Ord(Name[i])*i)+IntToStr(10*i+1);
end;
tmpint := StrToInt(tmpstr)*2;
...

А вот дальше проблема. Не понятно, что делает функция по адресу 0047F864 (System.@_llmul;).
Тут что-то с int64 связано...
Может кто подскажет...




Ранг: 209.1 (наставник)
Активность: 0.130
Статус: Участник
программист априори

Создано: 08 марта 2005 17:56
· Личное сообщение · #2

А это не перемножение длинных целых? Это тока предположение, чисто по название посудил



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

Создано: 08 марта 2005 18:08
· Личное сообщение · #3

// 64 bit integer helper routines
//
// These functions always return the 64-bit result in EAX:EDX

// ---------------------------------------------------------------------- --------
//  64-bit signed multiply
// ---------------------------------------------------------------------- --------
//
//  Param 1(EAX:EDX), Param 2([ESP+8]:[ESP+4])  ; before reg pushing
//

procedure __llmul;
asm
        push  edx
        push  eax

  // Param2 : [ESP+16]:[ESP+12]  (hi:lo)
  // Param1 : [ESP+4]:[ESP]      (hi:lo)

        mov   eax, [esp+16]
        mul   dword ptr [esp]
        mov   ecx, eax

        mov   eax, [esp+4]
        mul   dword ptr [esp+12]
        add   ecx, eax

        mov   eax, [esp]
        mul   dword ptr [esp+12]
        add   edx, ecx

        pop   ecx
        pop   ecx

        ret     8
end;




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

Создано: 08 марта 2005 18:27
· Личное сообщение · #4

А я помню ставил ентот сабж, так он мне при запуске 40 настроеек в реестре менял, => винда грузилась где-то минуту(правда он триальный был) так что теперь не рискну его и ставить.Хотя мож в зарегеной версии всё нормально

-----
Само плывет в pуки только то, что не тонет.




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

Создано: 08 марта 2005 18:27 · Поправил: Spiteful
· Личное сообщение · #5

Ну вроде так
в 0047F864 E85357F8FF call 00404FBC
считается след. вещь
eax=tmpint*9E75090Dh
edx=результат переполнения предыдущей операц.+tmpint*13h
из полученных EDX::EAX уже формируется сериал...
кстати, чтоб посчитать tmpint не надо крутить цикл
tmpint=(ascii код последнего символа regname * strlen(regname) * 0ah +strlen(regname))*2
P.S. если strlen >0ah, то в формуле надо заменить 0ah на 64h




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 09 марта 2005 05:44
· Личное сообщение · #6

А ещё там онлайн проверки



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 марта 2005 07:50
· Личное сообщение · #7

Короче сам разобрался (после литра выпитого ПИвА) ;) Здесь tmpint (int64) умножается на 84262848781,
Затем FormatFloat и тд.
166857461681833762+1+2005 - если что, то вот сериал для имени FuzzyLogic
Тему можно закрыть!

Спасибо всем, кто обсуждал всю эту хрень




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 марта 2005 19:25
· Личное сообщение · #8

FuzzyLogic пишет:
Короче сам разобрался

Тема закрыта.


 eXeL@B —› Основной форум —› КейГен для GameGain 2
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати