ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

25.11.2009, 02:40
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
=Zeus= почти так. код выводит стороку 0=34534D9304 а нужно без 0= т.е 34534D9304
так я же и учу потихоньку
|
|
|

25.11.2009, 02:46
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Сообщение от mobilka
=Zeus= почти так. код выводит стороку 0=34534D9304 а нужно без 0= т.е 34534D9304
так я же и учу потихоньку
У тебя во всех строках будет "0="? Если да то просто поменяй
Код:
Listbox1.Items.Add( Copy(TS[i+1], 3, length(TS[i+1]) ) );
Это значит что мы добавим строку с 3-его символа до последнего. то есть без первых двух символов "0=". Фактически нам не важно, какие будут первые 2 символа.
...
Блин, тут экстрасенсов нету. Я на твой вопрос ответил. Ты сказал что тебе нужно, я написал код.
Я спать.
Шайтанама, дружище, выучи сначала основы, а потом проси других. Ты ведь элементарного не можешь, а хочешь чтоб за тебя другие делали.
Последний раз редактировалось =Zeus=; 25.11.2009 в 02:53..
|
|
|

25.11.2009, 02:48
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
Сообщение от =Zeus=
У тебя во всех строках будет "0="? Если да то просто поменяй
Код:
Listbox1.Items.Add( Copy(TS[i+1], 3, length(TS[i+1]) ) );
Это значит что мы добавим строку с 3-его символа до последнего. то есть без первых двух символов "0=".
нет не во всех. и если в файле нет блока [3] то выбирается первый почему то. а желательно что бы посылалось сообщение в листбокс - block 3 not found
Последний раз редактировалось mobilka; 25.11.2009 в 02:51..
|
|
|

25.11.2009, 04:45
|
|
Познающий
Регистрация: 12.05.2009
Сообщений: 45
Провел на форуме: 255342
Репутация:
28
|
|
Как выше говорилось - курите библиотеку IniFiles
Типичное строение для инишника и делается все на много проще и приятней...
В Uses дописываем IniFiles
и кнопочка:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var blocks:TStringList;
ini:TIniFile;
i:integer;
s:string;
begin
blocks:=TStringList.Create;
ini:=TIniFile.Create('.\file.txt'); //связываем переменную с файлом
ini.ReadSections(blocks); //считываем в стринглист все "блоки"
blocks.Sort; // обязательно для поиска по стринглисту
if blocks.Find('3',i) then //ищем "блок" [3] - без скобок
begin
s:=ini.ReadString('3','0','Значение 0 не найдено');
ListBox1.Items.Add(s); //запивывает значение если найдено, если нет верхнюю фразу
end
else ListBox1.Items.Add('Block 3 not found'); //ну и это если сам блок не найден
end;
Все другие операции так же можно реализовать в пару строк а не делать "обрезание" по символу = или скобкам 
|
|
|

25.11.2009, 10:20
|
|
Участник форума
Регистрация: 02.07.2007
Сообщений: 189
Провел на форуме: 1843300
Репутация:
212
|
|
Блин ребят уже запарился с этой штукой. инди 10. как в мемо вывести нормальный текст а не типа такого "?iaaen.Aaiuae"
|
|
|

25.11.2009, 11:23
|
|
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
Провел на форуме: 592199
Репутация:
21
|
|
Вот попрос о работе с idhttp.
Вообщем делаю брут.
Все брутит хорошо но иногда выкидывает ошибку Timeout.
Я прописал ReadTimeout:=30000.
Долго брутило все було хорошо но потом выкинуло ошибку Error ReadTimeout
Как сделать что бы если врямя таймаута вышло прога повторяла запрос а не выдовала ошибку.
дупустим
http1.readtimeout:=30000;
http1.get('sait.com');
если мы не получили ответ то заного пытаемся выполнить http1.get('sait.com');
|
|
|

25.11.2009, 11:56
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Freedom, в свое время писал функцию:
Код:
function httpget (http : tidhttp; adr : widestring) : widestring;
var
str : tstringstream;
begin
str := tstringstream.Create('');
try http.Get (adr, str); except end;
Result := str.DataString;
str.Free;
end;
Вызов - s := httpget (http, 'http://vkontakte.ru');
Но советую вам на юникодную delphi пересесть - проблем знать не будете.
|
|
|

25.11.2009, 13:04
|
|
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме: 1249808
Репутация:
149
|
|
denjf, попробуй использовать исключения
try
//code
except
end;
простейший пример
|
|
|

25.11.2009, 13:57
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
Сообщение от МongBa†
Как выше говорилось - курите библиотеку IniFiles
Типичное строение для инишника и делается все на много проще и приятней...
В Uses дописываем IniFiles
и кнопочка:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var blocks:TStringList;
ini:TIniFile;
i:integer;
s:string;
begin
blocks:=TStringList.Create;
ini:=TIniFile.Create('.\file.txt'); //связываем переменную с файлом
ini.ReadSections(blocks); //считываем в стринглист все "блоки"
blocks.Sort; // обязательно для поиска по стринглисту
if blocks.Find('3',i) then //ищем "блок" [3] - без скобок
begin
s:=ini.ReadString('3','0','Значение 0 не найдено');
ListBox1.Items.Add(s); //запивывает значение если найдено, если нет верхнюю фразу
end
else ListBox1.Items.Add('Block 3 not found'); //ну и это если сам блок не найден
end;
Все другие операции так же можно реализовать в пару строк а не делать "обрезание" по символу = или скобкам 
спасибо. только почему то в любом случае посылается сообщение а блок не показывается. разобрался. спасибо
Последний раз редактировалось mobilka; 25.11.2009 в 14:12..
|
|
|

25.11.2009, 15:49
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
У меня вопрос по прехвату api функций, использовал эту статью
http://www.xakep.ru/post/22263/default.asp
Вызываю замену апи функции на свою(в инжектируемой библиотеке)
InterceptDllCall(hInstance, 'user32.dll', 'MessageBoxA',Pointer(@MyMessageBox), nil, Pointer(myProc));
Вот описание, что бы было понятней
Код:
function InterceptDLLCall(hLocalModule: HModule; c_szDllName, c_szApiName:PChar;
pApiNew, pApiToChange: Pointer; var p_pApiOrg: Pointer): boolean;
hLocalModule: HModule; – модуль в котором находиться Import Table
c_szDllName:PChar; – имя DLL, в которой находиться перехватываемая функция
c_szApiName:PChar; – имя перехватываемой функции
pApiNew: Pointer; – указатель на нашу функцию, которая будет вызываться вместо перехватываемой.
pApiToChange: Pointer; – указатель на перехватываемую функцию, если равно nil, то адрес функции определяется через c_szDllName и c_szApiName.
p_pApiOrg: Pointer; – указатель на старую перехватываемую функцию
но проблема вот в чём, замена функции работает только в инжектируемой библиотеке, а не в самом приложении куда я её инжектирую.
Даю гарантию это из за hLocalModule так как hInstance - дескриптор текущего экземпляра приложения, которым является инжектируемая библиотека а не само приложение.
Так как же мне узнать HModule этого приложения?
Последний раз редактировалось ZET36; 25.11.2009 в 15:53..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|