ProTeuS
06.03.2008, 17:12
оффсайт: 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
это нефига не статья, и не тутор, просто 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