PDA

Просмотр полной версии : [Статья] Модифицирование памяти,или делай Unfreez для PW


Relli
18.01.2013, 14:45
Я пишу на Delphi XE2/3.Почему я это говорю?Просто различается написание некоторых фун-ий,например IpNumberByte в Delphi 7 - значение DWORD,а в XE2/3 - NativeUint
Выкладываю видео,как искать значение:
oLP7Yw65G2s
--------------------------------------------------------
Приступаем к кодингу:
Нам потребуется 1 форма и 1 кнопка.
Процедура патча памяти(байты) Dinmait'а:
procedure MemoryPatch(hProcess, Addres: DWord; bytecode: string);
var
i: DWord;
bytecount: NativeUint;
buf: byte;
begin
i := (length(bytecode) div 2) - 1;
for i := 0 to i do
begin
buf := strtoint('$' + bytecode[i * 2 + 1] + bytecode[i * 2 + 2]);
writeprocessmemory(hProcess, ptr(Addres + i), @buf, 1, bytecount);
end;
end;
Процедура кнопки:

var
H: hwnd;
HandleProc, i, Pid: integer;
rw: NativeUint;
adress: integer;
begin
i := 1;
adress := $00435788; // адресс который изменяет состояние заморозки(2-ой адресс)
H := FindWindow('ElementClient Window', nil); // ищем окно с соответствующем ClassName
If H = 0 then // если не находим окно,то....
begin
MessageDlg('!', mtwarning, [mbOK], 0);
exit;
end
else
begin
GetWindowThreadProcessId(H, @Pid); // получаем ид
HandleProc := OpenProcess(PROCESS_ALL_ACCESS, False, Pid);// открываем процесс для чтения/записи
MemoryPatch(HandleProc, adress, '909090909090'); { юзаем процедуру Dinmait'а(прости,если криво написал) по изменению байтов в памяти,нопим ровно 6 байт(nop = 90)}
writeprocessmemory(HandleProc, ptr($00B4FA6C), @i, sizeof(i), rw); // изменяем текущее значение разморозки на 1
end;
end;

Собственно вот и все.
//Написал статью,т.к. очень многие спрашивают как сделать Unfreez

sumikot
18.01.2013, 16:15
Relli, перед заливкой на ютуб можно немного поработать над видеорядом любым видеоредактором, поддерживающим масштабирование и обрезку бордюра - иначе то, что было написано при захвате текстом можно считать неудачно потраченным временем.
ЗЫ. Про переключение в HD режим при просмотре знаю.

Relli
18.01.2013, 17:00
Relli, перед заливкой на ютуб можно немного поработать над видеорядом любым видеоредактором, поддерживающим масштабирование и обрезку бордюра - иначе то, что было написано при захвате текстом можно считать неудачно потраченным временем.
ЗЫ. Про переключение в HD режим при просмотре знаю.
Ссори,просто видео приходилось пилить пару раз...про тонкости не знаю

Sirioga
18.01.2013, 19:36
Очень плохо, что не любишь думать, но главное, это признать и исправится. Nop это крайний случай, когда ничего не помогает или уж совсем додуматься не можешь или нет времени разбираться.
Выше есть строчка «test al,al», которая лежит по адресу 435786 и если сюда записать B0, а следующий байт (435787) сразу вписать 01, то строчка приобретет вид «mov al,01» и мы получим анфриз без нопа и с минимальным кодом. Что делает test и mov можно почитать на тематических сайтах, но опять же, если не лень...

PS: VeTaL_UA спалился на видео, да и вообще какое-то слишком длинное видео получилось, мало экшна :(

Relli
18.01.2013, 19:45
мало экшна :(
я просто свернул браузер с открытым "браззерс"

Добавлено через 3 минуты
А так,спасибо за совет

VeTaL_UA
18.01.2013, 22:37
Видео долгое, 80% не по теме, грамматика ужасная, нопы оставляют только нубы, скачай нормальный СЕ. Всё сказал :D

Добавлено через 2 минуты
Ах да, совсем забыл, UnfreezE

Relli
18.01.2013, 23:30
Видео долгое, 80% не по теме, грамматика ужасная, нопы оставляют только нубы, скачай нормальный СЕ. Всё сказал :D

Добавлено через 2 минуты
Ах да, совсем забыл, UnfreezE
с русским языком у меня проблема - признаю./okay
Долгое,т.к. хотел объяснить все и вся.Да и статья и фактически никогда не писал.
И да,согласен,в этом деле я нуб,но почему бы не поделиться с людьми....Методом проб и ошибок)Допустим,я нуб и попытался сделать,выслушал критику - сделал выводы.Так же,я надеюсь,их сделали и те,кто читал посты

VeTaL_UA
18.01.2013, 23:57
Relli, сама затея мне не ясна, зачем делать дофигадлинное видео только про анфриз, за такое время можно было и зум сделать, и зоны пооткрывать, и ещё как-то клиент потеребить :)

Relli
19.01.2013, 08:38
Relli, сама затея мне не ясна, зачем делать дофигадлинное видео только про анфриз, за такое время можно было и зум сделать, и зоны пооткрывать, и ещё как-то клиент потеребить :)
Ну очень много новичков спрашивают,как сделать...я сам новичек в этом деле и решил поделиться моим темпераменто)
Того и я знаю,как лучше делать и другие. + я показал процесс поиска(прошу прощения,если криво написано - сижу с телефона)