ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

кейгенинг EmEditor Version 7.00.2 "подшумок"
  #1  
Старый 06.03.2008, 17:12
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию кейгенинг EmEditor Version 7.00.2 "подшумок"

оффсайт: http://www.emeditor.com/

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

как-то загружая на фтп софт загрузил по нагу и эту тулзень, и юзая закейгененую версию emFTP заметил, 4то emEditor незареген и давно хотел поглядеть в 4ем разница в коде от первого продукта.

про4итав мою статейку по кейгенингу emFTP (http://cracklab.ru/art/?action=view&id=359), выбираем константу в функции подст4ета регномера для EmFTP (например 270Fh из команды CMP AX, 270Fh) и поиск в ольке (Find All Constans) доказывает, 4то девелеперы упорно не хотят менять алго генерации регномеров не то 4то для новых билдов, а даже для совершенно других своих продуктов:
.text:0044F229 mov esi, 270Fh

Код:
.text:0044F21D sub_44F21D      proc near               ; CODE XREF: sub_44F3AC+27p
.text:0044F21D
.text:0044F21D var_4           = dword ptr -4
.text:0044F21D arg_0           = dword ptr  4
.text:0044F21D
.text:0044F21D                 push    ecx
.text:0044F21E                 mov     eax, [esp+4+arg_0]
.text:0044F222                 movzx   edx, word ptr [eax+2]
.text:0044F226                 xor     ecx, ecx
.text:0044F228                 push    esi
.text:0044F229                 mov     esi, 270Fh
и т.д.

по4ти один водин совпадает с алго прос4ета в EmFTP. идем на уровень выше и видим все то же сравнение первой вбитой 4байтной последовательности:

Код:
.text:0044F3AC sub_44F3AC      proc near               ; CODE XREF: sub_432638+3Ep
.text:0044F3AC                 movzx   eax, word ptr [esi] //тут загружается первая вбитая при регистрации 4байтная последовательность
.text:0044F3AF                 push    0Ah
.text:0044F3B1                 cdq
.text:0044F3B2                 pop     ecx
.text:0044F3B3                 idiv    ecx
.text:0044F3B5                 cmp     eax, 0B5h //тут сравнение. у девелоперов хватило фантазии только 4тобы сменить сравниваемый байт с B7 на B5, но алго оставили тем же
.text:0044F3BA                 jz      short loc_44F3CD
.text:0044F3BC                 xor     ecx, ecx
.text:0044F3BE                 cmp     eax, 0ABh
.text:0044F3C3                 setnz   cl
.text:0044F3C6                 lea     ecx, [ecx+ecx-3]
.text:0044F3CA                 mov     eax, ecx
.text:0044F3CC                 retn
.text:0044F3CD ; ---------------------------------------------------------------------------
.text:0044F3CD
.text:0044F3CD loc_44F3CD:                             ; CODE XREF: sub_44F3AC+Ej
.text:0044F3CD                 push    edi
.text:0044F3CE                 movzx   edi, word ptr [esi+6]
.text:0044F3D2                 push    esi
.text:0044F3D3                 call    parse
.text:0044F3D8                 cmp     eax, 0FFFFFFFEh
.text:0044F3DB                 jnz     short loc_44F3DF
.text:0044F3DD                 pop     edi
.text:0044F3DE                 retn
 
Ответить с цитированием

  #2  
Старый 06.03.2008, 17:16
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

более того, буфер Data по адресу 00483FC0 да и сам алгоритм проверки тоже не изменили. все байт в байт.
итого кейген для сабжа имеет вид:

Код:
unit main; //на форме баттон и 4 спинедита

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin;

type
  TForm1 = class(TForm)
    Button1: TButton;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    SpinEdit3: TSpinEdit;
    SpinEdit4: TSpinEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
Data: array [1..400] of byte =(
 $26, 00, 00, 00, $5B, 00, 00, 00, $62, 00, 00, 00, $36, 00, 00, 00,  //&...[...b...6...
 $34, 00, 00, 00, $60, 00, 00, 00, $13, 00, 00, 00, $35, 00, 00, 00,  //4...`......5...
 $19, 00, 00, 00, $54, 00, 00, 00, $3F, 00, 00, 00, $44, 00, 00, 00,  //...T...?...D...
 $4C, 00, 00, 00, $38, 00, 00, 00, $5D, 00, 00, 00, $33, 00, 00, 00,  //L...8...]...3...
 $56, 00, 00, 00, $61, 00, 00, 00, $42, 00, 00, 00, $21, 00, 00, 00,  //V...a...B...!...
 $3E, 00, 00, 00, $2D, 00, 00, 00, $23, 00, 00, 00, $0E, 00, 00, 00,  //>...-...#......
 $1E, 00, 00, 00, $5F, 00, 00, 00, $57, 00, 00, 00, $12, 00, 00, 00,  //..._...W......
 $1B, 00, 00, 00, $17, 00, 00, 00, $22, 00, 00, 00, $58, 00, 00, 00,  //......"...X...
 $2C, 00, 00, 00, $63, 00, 00, 00, $5C, 00, 00, 00, $18, 00, 00, 00,  //,...c...\......
 $37, 00, 00, 00, $41, 00, 00, 00, $59, 00, 00, 00, $4D, 00, 00, 00,  //7...A...Y...M...
 $15, 00, 00, 00, $5A, 00, 00, 00, $53, 00, 00, 00, $0B, 00, 00, 00,  //...Z...S......
 $05, 00, 00, 00, $1C, 00, 00, 00, $10, 00, 00, 00, $2E, 00, 00, 00,  //.............
 $49, 00, 00, 00, $40, 00, 00, 00, $0D, 00, 00, 00, $07, 00, 00, 00,  //I...@..........
 $50, 00, 00, 00, $3D, 00, 00, 00, $32, 00, 00, 00, $46, 00, 00, 00,  //P...=...2...F...
 $0A, 00, 00, 00, $43, 00, 00, 00, $2B, 00, 00, 00, $00, 00, 00, 00,  //....C...+.......
 $3B, 00, 00, 00, $48, 00, 00, 00, $5E, 00, 00, 00, $4E, 00, 00, 00,  //;...H...^...N...
 $51, 00, 00, 00, $1F, 00, 00, 00, $20, 00, 00, 00, $3A, 00, 00, 00,  //Q...... ...:...
 $01, 00, 00, 00, $2A, 00, 00, 00, $45, 00, 00, 00, $55, 00, 00, 00,  //...*...E...U...
 $4A, 00, 00, 00, $02, 00, 00, 00, $52, 00, 00, 00, $27, 00, 00, 00,  //J......R...'...
 $03, 00, 00, 00, $4B, 00, 00, 00, $08, 00, 00, 00, $3C, 00, 00, 00,  //...K......<...
 $0F, 00, 00, 00, $14, 00, 00, 00, $24, 00, 00, 00, $25, 00, 00, 00,  //......$...%...
 $28, 00, 00, 00, $29, 00, 00, 00, $16, 00, 00, 00, $1D, 00, 00, 00,  //(...).........
 $1A, 00, 00, 00, $11, 00, 00, 00, $2F, 00, 00, 00, $39, 00, 00, 00,  //....../...9...
 $09, 00, 00, 00, $47, 00, 00, 00, $06, 00, 00, 00, $4F, 00, 00, 00,  //....G......O...
 $04, 00, 00, 00, $31, 00, 00, 00, $0C, 00, 00, 00, $30, 00, 00, 00); //...1.......0...


var
  Form1: TForm1;

implementation

{$R *.dfm}

function Generate(first, second, third, fourth :word): word;
begin
  asm
    PUSH ESI
    PUSH ECX
    PUSH ECX
    MOV DX, second
    AND fourth, 0
    CMP DX, 270Fh
    JA @ending
    MOV AX, third
    CMP AX, 270Fh
    JA @ending
    XOR ECX, ECX
    MOV CX, first
    CMP CX, 715h
    MOV esi, ECX //!!!
    JNZ @next
    CMP DX, 1C1Eh
    JNZ @next
    CMP AX, 159Dh
    JNZ @next
  @fail:
    PUSH -2
    JMP @ending2
  @next:
    CMP CX, 71Ah
    JNZ @next2
    CMP DX, 1009h
    JNZ @next2
    CMP AX, 15h
    JE @fail
  @next2:
    CMP CX, 714h
    JNZ @main
    CMP DX, 1321h
    JNZ @main
    CMP AX, 0B6Ch
    JE @fail
  @main:
    PUSH EBX
    PUSH EBP
    PUSH EDI
    MOVZX EDI,AX
    MOVZX EAX,DX
    MOV esi, EAX //!!!
    PUSH 64h
    POP EBX
    MOV EAX,EDI
    CDQ
    IDIV EBX
    PUSH 0Ah
    POP EBP
    MOVZX ECX, CX
    PUSH 64h
    MOV EBX, EAX
    MOV EAX, ECX
    CDQ
    IDIV EBP
    ADD EBX, esi
    ADD EAX, EBX
    ADD EAX, EDI
    CDQ
    POP EDI
    IDIV EDI
    MOV EAX, esi
    PUSH 64h
    POP EBX
    PUSH 64h
    POP EBP
    PUSH EBP
    MOV DI, WORD PTR DS:[EDX*4 + Data]
    CDQ
    IMUL DI,DI,64h
    IDIV EBX
    MOV EBX, EAX
    MOV EAX, ECX
    CDQ
    IDIV EBP
    ADD EBX, ECX
    POP ECX
    ADD EAX, EBX
    CDQ
    IDIV ECX
    ADD DI, WORD PTR DS:[EDX*4 + Data]
    MOV DX, DI
    POP EDI
    POP EBP
    POP EBX
    CMP first, 77Bh
    MOV fourth, DX //result
    JE @fail2
    CMP first, 77Ah
    JE @fail2
    XOR EAX, EAX
    INC EAX
    JMP @end
  @fail2:
    PUSH 2
  @ending2:
   POP EAX
    JMP @end
  @ending:
    OR EAX, -1h
  @end:
    MOV CX, fourth
    MOV RESULT, CX
    POP ECX
    POP ECX
    POP ESI
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
label
next_iteration;
var
first, second, third, fourth: word;
begin
    randomize;
  next_iteration:
    first := random(9999); //генерируем 4 случайных числа 
    second := random(9999);
    third := random(9999);
    fourth := random(9999);
    if first div $A <> $B5 then goto next_iteration; //вот эта ОГРОМНАЯ разница в коде между двумя продуктами
    if first = $77B then goto next_iteration; //эти значения не следует брать, т.к. они используются только в
    if first = $77A then goto next_iteration; //education и academic version, а нам нужна FULL
    SpinEdit1.Value := first;
    SpinEdit2.Value := second;
    SpinEdit3.Value := third;
    SpinEdit4.Value := Generate(first, second, third, fourth);
end;

end.
 
Ответить с цитированием

  #3  
Старый 06.03.2008, 21:02
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Бля, протеус, а почему на делфи то...??
 
Ответить с цитированием

  #4  
Старый 06.03.2008, 21:49
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

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

  #5  
Старый 10.12.2008, 15:59
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

недавно вышел EmEditor 8.01 (http://www.emeditor.com/). Для него кейген все еще актуален
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ