---------------------------------------
#!/usr/share/doc/defaced/3/misc/faq.txt
---------------------------------------
FAQ [ by defaced staff ]
---
================================================================================
Тема: FAQ
От: "Roneon" <[email protected]>
================================================================================
Нужно написать прогу(Delphi/C++/VB/(Pascal/C)), которая в других программах
будет искать первый попавшийся условный переход, и заменять его безусловным.
Вопрос: возможно ли это? Первое время я был уверен, что возможно, но потом
столкнулся со следующими проблемами: типов условных переходов -больше двадцати,
и ещё несколько мелких проблем. Если возможно, то второй вопрос: каким(примерно)
образом? Неужели, прийдётся искать все условные переходы(7D, 0F8D, 75, 0F85, 74,
0F84, 77, 0F87, 0F86, 0F83, 0F82, 0F82, 0F83, 0F86, 0F87, 0F8F, 0F8E, 0F8D,
0F8C, 0F8C, 0F8D, 0F8E, 0F8F), и заменять их на противоположенные/EB/EB90?! В
небольшой программке их будет около 1500, а мне нужно не более 100... =( Может,
какой-то тип условных переходов более распостранён(Мне нужно банальное If из
Delphi и/или C++), считается "классическим"?
[ Вероятно ты имеешь в виду что-то вроде этого:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActnList, StdCtrls;
type
TForm1 = class(TForm)
ActionList1: TActionList;
OpenDialog1: TOpenDialog;
Button1: TButton;
AcOpen: TAction;
procedure AcOpenExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.AcOpenExecute(Sender: TObject);
var
f: textfile;
f1: textfile;
s: string;
pos1, pos2: integer;
begin
if OpenDialog1.Execute then
begin
assignfile(f, OpenDialog1.FileName);
assignfile(f1, OpenDialog1.FileName+'1');
reset(f);
rewrite(f1);
while not EoF(f) do
begin
readln(f, s);
pos1:=pos('if', s);
pos2:=pos('goto', s);
if (pos1<>0) and (pos2<>0) then s:=copy(s, pos2, length(s));
writeln(f1, s);
end;
closefile(f);
closefile(f1);
end;
end;
end.
Если же в виду имелась замена условных переходов в бинарных исполнимых файлах (
типа замены jne на je ), то тут тебе помочь ничем могу ]
================================================================================
Тема: FAQ
От: Vovan <[email protected]>
================================================================================
Хотелось бы по подробнее узнать о процессе чистки логов!:))))
Если можно, с особенностями конкретных ОСей!
-=NUX=-
[ в этом номере есть статья на данную тему ]
================================================================================
Тема: в FAQ
От: anonymous user
================================================================================
Defaced-очень хороший журнал!:)
Расскажите pls о Proxy, по подробнее, если можно!:)))))
[ письмо пришло слишком поздно, но я обещаю, что в следующем номере обязательно
будет подробная статья по теме ]