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

 eXeL@B —› Вопросы новичков —› Ether saga online распаковка архивов
Посл.ответ Сообщение

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

Создано: 13 апреля 2009 08:49 · Поправил: ilyuha
· Личное сообщение · #1

Всем привет. Возникла потребность в распаковке архивов данной игры, которые имеют расширение pck. Просматривая файл наткнулся на строку "Angelica File Package, Perfect World Co. Ltd. 2002~2008. All Rights Reserved". Нашел на форумах распаковщик для Perfect world но он не распаковывает. В той же папке с архивами лежит packdll.dll, который судя по всему является библиотекой для запаковки/распаковки. Просмотрев его прогой fileinfo видно что есть точки входа DecompressFile, AddFileToPack. Кто нибудь может подсказать что делать дальше и как воспользоваться библиотекой?
вот dll а вот мелкий архив если кто захочет попробовать




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 13 апреля 2009 09:25
· Личное сообщение · #2

ilyuhaПопробуй --> Dragon UnPACKer 5.4.0 <-- неплохая утиль чтобы дербанить ресурсы игр

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

Создано: 13 апреля 2009 09:37
· Личное сообщение · #3

Не помогает, я уже пытался погуглить этот архиватор но наткнулся только на форум где пишут что в PW обновили пакер и приведена программа распаковки, но она не пашет на данных архивах.



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

Создано: 14 апреля 2009 15:53 · Поправил: ilyuha
· Личное сообщение · #4

Загрузил библиотеку в olly в точке где начинается процедура распаковки файла такой код
10001270 SUB ESP,328
10001276 MOV EDX,DWORD PTR SS:[ESP+32C]
1000127D PUSH EBX
1000127E PUSH EBP
1000127F PUSH ESI
10001280 PUSH EDI
10001281 LEA EAX,DWORD PTR SS:[ESP+13]
10001285 MOV ESI,DWORD PTR DS:[<&KERNEL32.WideCha>; kernel32.WideCharToMultiByte
1000128B PUSH 0 ; /pDefaultCharUsed = NULL
1000128D PUSH EAX ; |pDefaultChar
1000128E LEA ECX,DWORD PTR SS:[ESP+1B0] ; |
10001295 PUSH 190 ; |MultiByteCount = 190 (400.)
1000129A PUSH ECX ; |MultiByteStr
1000129B PUSH -1 ; |WideCharCount = FFFFFFFF (-1.)
1000129D PUSH EDX ; |WideCharStr
1000129E PUSH 0 ; |Options = 0
100012A0 PUSH 3A8 ; |CodePage = 3A8
100012A5 MOV BYTE PTR SS:[ESP+33],20 ; |
100012AA CALL ESI ; \WideCharToMultiByte
100012AC MOV EDX,DWORD PTR SS:[ESP+340]
100012B3 LEA EAX,DWORD PTR SS:[ESP+13]
100012B7 PUSH 0 ; /pDefaultCharUsed = NULL
100012B9 PUSH EAX ; |pDefaultChar
100012BA LEA ECX,DWORD PTR SS:[ESP+20] ; |
100012BE PUSH 190 ; |MultiByteCount = 190 (400.)
100012C3 PUSH ECX ; |MultiByteStr
100012C4 PUSH -1 ; |WideCharCount = FFFFFFFF (-1.)
100012C6 PUSH EDX ; |WideCharStr
100012C7 PUSH 0 ; |Options = 0
100012C9 PUSH 3A8 ; |CodePage = 3A8
100012CE CALL ESI ; \WideCharToMultiByte
100012D0 LEA EAX,DWORD PTR SS:[ESP+18]
100012D4 PUSH 80 ; /FileAttributes = NORMAL
100012D9 PUSH EAX ; |FileName
100012DA CALL DWORD PTR DS:[<&KERNEL32.SetFileAtt>; \SetFileAttributesA
100012E0 LEA ECX,DWORD PTR SS:[ESP+1A8]
100012E7 PUSH ECX
100012E8 CALL packdll.10001060
100012ED MOV EDI,EAX
100012EF ADD ESP,4
100012F2 CMP EDI,-1
100012F5 JNZ SHORT packdll.10001304
100012F7 POP EDI
100012F8 POP ESI
100012F9 POP EBP
100012FA XOR AL,AL
100012FC POP EBX
100012FD ADD ESP,328
10001303 RETN
10001304 LEA EDX,DWORD PTR SS:[ESP+1A8]
1000130B PUSH packdll.1000F2EC ; /mode = "rb"
10001310 PUSH EDX ; |path
10001311 CALL DWORD PTR DS:[<&MSVCRT.fopen>] ; \fopen

Не понятно что делает WideCharTomultiByte, на мсдн сижу читаю про нее, если прогонять пошагово то при установке атрибута файла появляется ошибка неверное имя файла, те как то надо задать имя.
P.s. как красиво скинуть листинг а то он странно тут выглядит?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 14 апреля 2009 16:50 · Поправил: progopis
· Личное сообщение · #5

воспользоаться тегом [_ASM] (закрывается [/_ASM] - только без подчёркиваний)

Пример:

Code:
  1. push cracklab; Я код на асме



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


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