Озменить код в ехе файле

Статус
В этой теме нельзя размещать новые ответы.

temp888

Создатель
Регистрация
30 Май 2010
Сообщения
17
Реакции
0
Нужно изменить надпись в программе ехе написаной на делфи средствами пхп.
Надписль содержется в копоненте лабел..
 
Нужно изменить надпись в программе ехе написаной на делфи средствами пхп.
Надписль содержется в копоненте лабел..
В чем проблема? Найди смещение этой строки в exe, загрузи файл в массив ($contents = file_get_contents($filename))), пройдись циклом по байтам массива с заменой символов и записывай обратно в файл или на скачку выдавай.
 
Нужно изменить надпись в программе ехе написаной на делфи средствами пхп.
Надписль содержется в копоненте лабел..

для чего и как часто будет это делаться? если копирайты снимать, то большинство программ хотя и написанных на дельфи, дополнительно пакуются, и там найти строку уже весьма проблематично. а если просто на раз убрать текст из лейбла, проще руками через тот же hexview это сделать.
 
тут простая замена не подойдет
нужно ознакомиться как минимум с форматов файлов PE (Portable Executable) формат для win32
все названия хранятся в секции ресурсов и эта секция имеет смещение и контрольную сумму и если тупо заменить строку ... то будет как имнимум ошика тина Error: WtiteMem address ... и т.д.
можно ручками поменять используя программу для редактирования ресурсов PE (.exe) файлов ... например программа PE Explorer
короче вот тебе почва ... размышляй
 
хм, интересно... а зачем тебе редактировать файл?
 
В чем проблема? Найди смещение этой строки в exe, загрузи файл в массив ($contents = file_get_contents($filename))), пройдись циклом по байтам массива с заменой символов и записывай обратно в файл или на скачку выдавай.
Не могли бы вы привести пример этого?
 
Открываешь блокнот (Пуск -> Выполнить -> "notepad")

В блокноте открываешь свой экзешник (Файл -> Открыть -> Тип файлов: все, кодировка ANSI)

Ищешь в своем экзешнике нужную строку (Правка -> Найти).

Если нашлась - поздравляю, можно поменять. Подойдет любой БИНАРНЫЙ редактор (Far, Hiew, vim -b, Hex Editor, 010 Editor ....), только новая строка должна быть такой же по длине (забей лишние символы пробелами, строку длиннее исходной всунуть не получится).

Еще вариант - попробовать Resource Workshop и им подобные проги. Тогда можно будет всунуть строку любой длины, но и шансов что все будет работать, учитывая глубину твоих познаний, намного меньше.
 
Открываешь блокнот (Пуск -> Выполнить -> "notepad")

В блокноте открываешь свой экзешник (Файл -> Открыть -> Тип файлов: все, кодировка ANSI)

Ищешь в своем экзешнике нужную строку (Правка -> Найти).

Если нашлась - поздравляю, можно поменять. Подойдет любой БИНАРНЫЙ редактор (Far, Hiew, vim -b, Hex Editor, 010 Editor ....), только новая строка должна быть такой же по длине (забей лишние символы пробелами, строку длиннее исходной всунуть не получится).

Еще вариант - попробовать Resource Workshop и им подобные проги. Тогда можно будет всунуть строку любой длины, но и шансов что все будет работать, учитывая глубину твоих познаний, намного меньше.
Первое сообщение прочитай!!
Это нужно средствами пхп сделать!!!
 
Не могли бы вы привести пример этого?
Я ж привел. Ну вот весь кусок:
Код:
// читаем файл в строку
if ($contents = file_get_contents($bild_filename))
{	
	// записываем в строку байты числа aff
	for ($i = 0; $i < $aff_bytes; $i++) 
	{
		$contents[$aff_offset + $i] = chr($aff % 0x100);
		$aff = floor($aff / 0x100);		
	}
	
	// записываем в строку байты числа saff
	for ($i = 0; $i < $saff_bytes; $i++) 
	{
		$contents[$saff_offset + $i] = chr($saff % 0x100);
		$saff = floor($saff / 0x100);		
	}
	
	// читаем из строки версию билда
	$curr_ver = 0;
	for ($i = $ver_bytes - 1; $i >= 0; $i--) 
	{
		$curr_ver += ord($contents[$ver_offset + $i]);				
		$curr_ver *= pow(0x100, $i);				
	}	
	
	
	// если на сервере нет более новой версии, даем ошибку
	if ($ver >= $curr_ver)
	{
		header('HTTP/1.0 404 Not Found');
	}
	else
	{
		// отправляем заголовки бинарного файла
		header('Content-Type: application/octet-stream');
		header('Content-Length: '. filesize($bild_filename));	
		echo $contents;
	}
}
Что ж тут непонятного...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху