Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Помощь в Делфях
Посл.ответ Сообщение

Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 10 июля 2006 21:03
· Личное сообщение · #1

Дезасмил IsDebuggerPresent:
mov eax,fs:[018h]
mov eax,[eax+30h]
movzx eax,byte ptr [eax+02]

Как мне можно такую же сделать на Delphi?




Ранг: 61.7 (постоянный)
Активность: 0.050
Статус: Участник
я

Создано: 10 июля 2006 21:08 · Поправил: BaGiE
· Личное сообщение · #2

какую такую же? непонятно чего ты хочешь...




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 10 июля 2006 21:09
· Личное сообщение · #3

asm
....
Ассемблерный код
....
end;

-----
StarForce и Themida ацтой!





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 10 июля 2006 21:11
· Личное сообщение · #4

Жжошь. Этож API, нафига ее делать, юзай и всё.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 10 июля 2006 21:45
· Личное сообщение · #5

The IsDebuggerPresent function indicates whether the calling process is running under the context of a debugger.
This function is exported from KERNEL32.DLL.

BOOL IsDebuggerPresent(VOID)

Parameters

This function has no parameters.

Return Value

If the current process is running in the context of a debugger, the return value is nonzero.
If the current process is not running in the context of a debugger, the return value is zero.



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 10 июля 2006 23:37
· Личное сообщение · #6

Ха, мужики, вы не поняли, что он хочет -- если посмотреть на энту АПИ внимательно, то видно что можно не использовать ее, а просто проверять флажек вручную, используя ассемблерную вставку... Это (теоретически) должно усложнить взлом (типа не видно как палится дебагер, так как вызова АПИ нет), хотя это все не спасет, если флажек правится каким-нибудь плагином к ольке...

-----
Research is my purpose




Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 11 июля 2006 07:14
· Личное сообщение · #7

sniperZ может я и недопонял, что тебе надо, но на всякий случай:

function DebuggerPresent: boolean;
type
TDebugProc = function: boolean; stdcall;
var
Kernel32: HMODULE;
DebugProc: TDebugProc;
begin
Result := False;
Kernel32 := GetModuleHandle('kernel32.dll');
if Kernel32 <> 0 then
begin
@DebugProc := GetProcAddress(Kernel32, 'IsDebuggerPresent');
if Assigned(DebugProc) then
Result := DebugProc;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if DebuggerPresent then
ShowMessage('debugging')
else
ShowMessage('NOT debugging');
end;



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 11 июля 2006 10:56
· Личное сообщение · #8

Error_Log! Ты правильно меня понял.

Напишите кто нить эту функцию.



Ранг: 62.3 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 11 июля 2006 10:59
· Личное сообщение · #9

Это на Си

int Dbr; // var integer : Dbr;
_asm //asm
{ //begin
push eax;
mov eax,fs:[018h]
mov eax,[eax+30h]
movzx eax,byte ptr [eax+02]
mov Dbr,eax
pop eax;
} // end
if (Dbr) // он и в африке if
{
printf("debugging");
}



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 11 июля 2006 11:06
· Личное сообщение · #10

Пасиба,Faza.


 eXeL@B —› Программирование —› Помощь в Делфях
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати