Текущий архив: 2008.11.23;
Скачать: CL | DM;
Вниз
По поводу дампа памяти.. Найти похожие ветки
← →
@!!ex © (2008-09-25 14:36) [0]Откройте обратно. Там нет ничего противозаконного!
Я не пишу кряки, хаки и вирусы. Я работаю в сфере локализаций, причем НЕ пиратской... уже писал вроде, когда аналогичные темы открывал.
← →
KSergey © (2008-09-25 14:40) [1]Зачем при непирацкой локализации дампить память?! Прога на ассемблере и сразу в кодах мастрячится умельцами причем сразу в виде самораспаковывающегося архива?! Остальные неумельцы маются перепаковкой, очевидно, т.к. править прямо байты архива не умеют :)
← →
@!!ex © (2008-09-25 14:43) [2]> [1] KSergey © (25.09.08 14:40)
Ниче не понял... из сказанного...
архив в непонятном виде... часть данных не шифрована вообще, часть зашифрована, разделителей никаких нет...
есть 4 байта в начале файла(непонятного назначения), дальше подряд, без всяких разделителей идут тела файлов. имена файлов где-то есть, но где - непонятно. Нужно вытащить ресурсы - картинки и тексты и перевести их.
как сделать? Я придумал только дамп памяти снять, там вроде данные в обычном массиве лежат с указателями на телфа файлов. Легко вынуть.
← →
KSergey © (2008-09-25 14:49) [3]> @!!ex © (25.09.08 14:43) [2]
> как сделать?
Запросите у разработчиков исходники из которых они это собирают. Или предложите им включить ваши картинки в сборку локализованной версии.
Или вы серьезно хотите сказать, что локализованные продукты фирмами делаются путем разборки готовых англоязычных инсталлаторов и перепаковки их с локализованными файлами? Самому-то не смешно? )
← →
@!!ex © (2008-09-25 14:57) [4]> [3] KSergey © (25.09.08 14:49)
Не смешно. Вы явно никогда не работали в сфере мелких игр.
Я работал. Год работал в фирме MyPlayCity.
работа заключалась в том, что я делал игры по ТЗ.
В одиночку, на любом языке, с использованием любых средств, главное чтобы игра была лицензионно чистой.
Исходники все у меня, даже больше, я единственный владелец исходников. Они - моя собственность.
А вот продукт и весь контент - принадлежит MyPlayCity.
Я оттуда уволился. Теперь они захотели перевести игру на французский... Что им делать? Меня найти практически не реально. Кто из MyPlayCity знает где я сейчас? Да никто. Гарантии что я их не пошлю на запос исходников? Никакой. И что делать? ОТдавать в YupiiStudio и другие аналогичные конторы.
← →
KSergey © (2008-09-25 15:01) [5]нафик нафик такую работу....
← →
@!!ex © (2008-09-25 15:05) [6]В основном проекты не сложные. часто архивы в zip, или xor ом зашифрованные. такие ломаются нараз.
Но изредка попадается гадость типа той, что сейчас делаю...
а работа... не хуже других, вобщем-то. удаленная, и платят нормально.
← →
Правильный$Вася (2008-09-25 15:17) [7]
> часть данных не шифрована вообще, часть зашифрована
откуда известно, если "архив" непонятного формата и имен файлов нет
← →
@!!ex © (2008-09-25 15:23) [8]> [7] Правильный$Вася (25.09.08 15:17)
По сигнатуре нашел несколько стандартных типов, типа png и ogg. вытащил, вроде вполне корректные файлы.
Также видно из под Olly, что из архива выдираются XML с текстом, но при этом ничего похожего на xml - в рахиве не обнаружено. :(
Отсюда и вывод.. png ogg и подобные не шифрованы вообще. xml - зашифрованы. имена файлов должны быть полюбому - но их нет, значит тоже шифрованы.
← →
Правильный$Вася (2008-09-25 15:49) [9]
> имена файлов должны быть полюбому - но их нет, значит тоже шифрованы.
не факт, может они фиксированы и хранятся в коде, а не в ресурсах
> из архива выдираются XML с текстом, но при этом ничего похожего
> на xml - в рахиве не обнаружено
так они не обязательно шифрованы, может,они просто пожаты
← →
Городской Шаман (2008-09-25 16:01) [10]ReadProcessMemory - читает память процесса.
Но для того чтобы прочитать ее необходимо прежде всего включить Debug привилегию у процесса который хочет читать/писать память других процессов, которая даже под админом есть но по умолчанию выключена.
Вот пример не мой, как включить shutdown привилегию там же по аналогии для debug
procedure ShutDown;
const
SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; // Borland forgot this declaration
var
hToken: THandle;
tkp: TTokenPrivileges;
tkpo: TTokenPrivileges;
zero: DWORD;
begin
if Pos("Windows NT", GetWinVersion) = 1 then // we"ve got to do a whole buch of things
begin
zero := 0;
if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
MessageBox(0, "Exit Error", "OpenProcessToken() Failed", MB_OK);
Exit;
end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
MessageBox(0, "Exit Error", "OpenProcessToken() Failed", MB_OK);
Exit;
end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
// SE_SHUTDOWN_NAME
if not LookupPrivilegeValue( nil, "SeShutdownPrivilege" , tkp.Privileges[0].Luid ) then
begin
MessageBox(0, "Exit Error", "LookupPrivilegeValue() Failed", MB_OK);
Exit;
end; // if not LookupPrivilegeValue( nil, "SeShutdownPrivilege" , tkp.Privileges[0].Luid )
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, tkp, SizeOf( TTokenPrivileges ), tkpo, zero);
if Boolean(GetLastError()) then
begin
MessageBox(0, "Exit Error", "AdjustTokenPrivileges() Failed", MB_OK);
Exit;
end // if Boolean( GetLastError() )
else
ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 );
end // if OSVersion = "Windows NT"
else
begin // just shut the machine down
ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 );
end; // else
end;
Через VirtualQuery получаешь действительно занятые страницы процесса и просто сбрасываешь их в файл в удобном для тебя формате.
← →
Городской Шаман (2008-09-25 16:01) [11]А вообще можно взять тупо softice и просто из него сбросить на диск нужную часть памяти.
Страницы: 1 вся ветка
Текущий архив: 2008.11.23;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.015 c