Центр рейнджеров "Млечный путь"

Тусовка => Обо всем => Начало: SID от 22.04.2009 15:43:32



Название: Вопрос к программистам
Отправлено: SID от 22.04.2009 15:43:32
Мне нужно ИЗМЕНИТЬ, не просмотреть, а изменить содержимое одного dll. Какие программы или способы для этого существуют(и возможно ли это вообще :rolleyes: )? Через блокнот и т.д не предлогать -- пробовал :crazy: . Делфи открывать его не хочет...


Название: Вопрос к программистам
Отправлено: Aleks от 22.04.2009 19:36:02
hex едитор юзай... Им вроде бы можно их менять, но я не уверен, не юзал его никогда...


Название: Вопрос к программистам
Отправлено: Dredd от 22.04.2009 21:00:13
HEX редактор, конечно, может помочь, но ты все равно увидишь билеберду. Надо знать, что изменять.

Да и вообще fopen(ff,filepath,"rb"); fopen(ff1,filepath,"wb"); :D


Название: Вопрос к программистам
Отправлено: zavron_lb от 24.04.2009 12:07:45
Клац (http://lmgtfy.com/?q=%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+dll).


Название: Вопрос к программистам
Отправлено: Падшая шэдова от 24.04.2009 14:31:53
Ссылка (http://www.google.com/search?q=дизассемблирование).


Название: Вопрос к программистам
Отправлено: geckman от 26.04.2009 13:42:20
Ну коль тема живет то и я задам вопрос (касается консольных приложений в седьмых дельфях).
Как известно, в консольных приложениях из-за несоответствия кодировок русский текст не может нормально отображаться. Пусть имеется функция rus, переделывающая текст в ASCII-строку:

function Rus(mes: string):string;
var
i: integer; // номер обрабатываемого символа
begin
for i:=1 to length(mes) do
  case mes of
  '
A'..'п': mes:= Chr(Ord(mes)-64);
  'р'..'я': mes:= Chr(Ord(mes)-16);
 
end;
rus := mes;
end;

begin
writeln(rus('Привет'));
readln;
end.

Можно ли эту функцию переделать в процедуру так, чтобы я мог обратиться к ней в начале кода, и она сама искала русскоязычные строчки в коде, сразу меняя кодировку? Чтобы было что-то типа того:

procedure Rus ({тут параметры});
begin
//текст процедуры
end;

begin
Rus;
writeln('Привет!');
writeln('Это сообщение будет перекодировано');
//дальше какая-нить хня
readln;
end.

А то тупо лень каждую русскоязычную строчку выделять скобками и писать обращение к функции. :shy:


Название: Вопрос к программистам
Отправлено: Dredd от 26.04.2009 16:42:05
Эм... а так бывает?  :confused:
Может создать свой
процедура WriteLn(строка)
begin
writeln(rus(строка));
end;
?


Название: Вопрос к программистам
Отправлено: geckman от 26.04.2009 21:05:46
Может создать свой процедура WriteLn(строка) begin writeln(rus(строка)); end;
Так у мну уже есть оно. :)
Я наоборот хочу, чтобы можно было один раз вызвать процедуру в начале текста и не париться, а то каждый раз вызывать функцию при writeln задалбывает...


Название: Вопрос к программистам
Отправлено: Dredd от 27.04.2009 12:50:05
Мну тебе и говорит: напиши свою процедуру WriteLn(str1), в которой автоматом будет вызываться системный writeln с параметром Rus(str1), т.е. тебе не нужно будет всегда писать Rus(str1), а только WriteLn("Я пишу всякими русскими буковами");


Название: Вопрос к программистам
Отправлено: geckman от 27.04.2009 15:25:49
Мну тебе и говорит: напиши свою процедуру WriteLn(str1), в которой автоматом будет вызываться системный writeln с параметром Rus(str1), т.е. тебе не нужно будет всегда писать Rus(str1), а только WriteLn("Я пишу всякими русскими буковами");
Хм, а это идея...
Извини что сразу не понял :)
Попробую..