Общее·количество·просмотров·страницы

воскресенье, 27 ноября 2011 г.

частенько на выездах приходится иметь дело с подменой либо вообще удалением хостса,в 7 (да и в других) проделывать все рутинные манипуляции с блокнотом и шарить по папкам в хп мне надоело,по этому я навоял махонькую,простенькую прогу размером в 2137 байт для коррекции хостса.

скачать http://splashed.ucoz.ru/hosts_restore.zip

воскресенье, 20 ноября 2011 г.

Билдер на delphi

Всем доброго времени суток.На днях мне стукнуло пару тройку людей в асику с целью что бы я объяснил как делаются билдеры каких либо прог.На словах оно конечно не оч ясно,по этому я решил сделать микро-статейку.
Билдер будет простой, для наглядности с messagebox-ом.
Приступим.
Напишем для начала наш билд.Писать можно на любом языке,я буду на масме.

.386
.model flat, stdcall
option casemap:none

include include\windows.inc
include include\kernel32.inc
include include\user32.inc
include include\shell32.inc

includelib lib\shell32.lib
includelib lib\user32.lib
includelib lib\kernel32.lib

.data
cap db 'MSG',0
msg db 'Hello!',0

start:
invoke MessageBox,0,addr msg,addr cap,0
invoke ExitProcess,0

end start

Билд есть.Суть билдера будет в том что бы изменять нужные данные (заголовок и сообщение) билда.Это будет делаться с помощью замены байтов.Как узнать нужные байты?Берем hiew или любой хекс редактор который Вам по душе и открываем в нем наш билд.Ищем выводимые строки.


записываем нужные байты.Теперь нам нужно сделать ресурс.Создаем новый текстовый файл с расширением *.rс в нем пишем например:FILE1 EXEFILE NEW.EXE
где new.exe- наш билд.Теперь нужно скомпилировать ресурс.Это можно сделать любым компилятором ресурсов,можно взять тот что в delphi brcc32.exe.
кидаем на него файл rс и получаем файл *.res. Данный ресурс мы прилинкуем в наш билдер (билдер пишем на делфи) таким образом:
{$R Res.res} вписав это перед implementation, где res.res- имя вашего файла ресурсов.Далее следует код билдера.Алгоритм создания билда таков:
1)Извлечь из ресурсов наш первоначальный билд
2)Пропатчить необходимые байты
3)Переименовать билд в заданное имя.
Итак код билдера:

var
  Form1: TForm1;
  m:array[1..6]of integer; // массив байтов сообщения
  c:array[1..3]of integer; // массив байтов заголовка
  
implementation

{$R *.dfm}
{$R res.res} // прилинкованный файл ресурсов
procedure TForm1.Button1Click(Sender: TObject);
var fn,msg,cap:string;
ch:byte;
BR:dword;
h:Thandle;
Res:TResourceStream;
begin

m[1]:=$404; // массив байтов заполняем нужными байтами
m[2]:=$405;
m[3]:=$406;
m[4]:=$407;
m[5]:=$408;
m[6]:=$409;

c[1]:=$400;
c[2]:=$401;
c[3]:=$402;

fn:=edit1.Text;  //тут имя билда
msg:=edit2.Text; //тут сообщение 
cap:=edit3.Text; // заголовок

Res:=TResourceStream.Create(HInstance,'FILE1','EXEFILE');
Res.SaveToFile(ExtractFilePath(Application.ExeName)+'new.exe');
Res.Free; // извлекаем файл из ресурсов

h:=fileopen('new.exe',fmopenwrite); // открываем на запись

ch:=ord(char(pchar(msg[1]))); // берем первый символ, преобразовавши его в его код.
setfilepointer(h,m[1],nil,0);  // указываем позицию в файле
writefile(h,ch,sizeof(ch),br,nil); // заменяем байт. т.д.

ch:=ord(char(pchar(msg[2])));
setfilepointer(h,m[2],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(msg[3])));
setfilepointer(h,m[3],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(msg[4])));
setfilepointer(h,m[4],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(msg[5])));
setfilepointer(h,m[5],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(msg[6])));
setfilepointer(h,m[6],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(cap[1])));
setfilepointer(h,c[1],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(cap[2])));
setfilepointer(h,c[2],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

ch:=ord(char(pchar(cap[3])));
setfilepointer(h,c[3],nil,0);
writefile(h,ch,sizeof(ch),br,nil);

closehandle(h);
renamefile('new.exe',fn); // переименовуем файл.
end;

end.

Вот собсно и все.Простенький билдер готов.Сильно не пинайте.Взять все готовое мона тута: http://splashed.ucoz.ru/builder.rar спс за внимание.

пятница, 4 ноября 2011 г.

Похоже что способ получать бесконечно лицензию на каспер 2012 закрыли.На официальном сайте автора программы сказано что он прекращает работу над программой.В следствии чего советую всем кто не хочет возиться с поиском ключей-переходить на drweb или avast. ключи для платных версий можно взять тут
http://bezvirusoff.ru/