Size: a a a

Ассемблер

2020 May 31

AC

Arti Chornyi Shampin... in Ассемблер
а вот это всегда по разному работает, не пойму почему

check_debug:
   RDTSC
   MOV edx, eax
   RDTSC
   SUB edx, eax
   CMP edx, 45
   JLE print_debug
   RET
источник

AC

Arti Chornyi Shampin... in Ассемблер
те 10 запусков что из цмд, что из дебаггера выдают рандомные сообщения, то дебаг найден, то нет
источник

A

Aleksandr in Ассемблер
потому что это очень "примерный" метод
источник

A

Aleksandr in Ассемблер
а еще, насколько я помню, оно в несколько регистров результат сохраняет
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Arti Chornyi Shampinyon
те 10 запусков что из цмд, что из дебаггера выдают рандомные сообщения, то дебаг найден, то нет
https://t.me/ChatAssembler/34898
а это смотрел/тестил/проверял?
источник

AC

Arti Chornyi Shampin... in Ассемблер
что именно? на что можно еще jle заменить?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
во вторых
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
обрати внимание какие регистры меняет
источник

AC

Arti Chornyi Shampin... in Ассемблер
CMP edx, 45
а что тут дает 45?
источник

AC

Arti Chornyi Shampin... in Ассемблер
мне сказали это время выполнения
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Arti Chornyi Shampinyon
что именно? на что можно еще jle заменить?
jle это знаковое сравнение, если старший бит будет 1, то результат будет противоположный
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
если сделать (условно)
cmp 128,127
то в твоем варианте 128 окажется меньше 127
источник

AC

Arti Chornyi Shampin... in Ассемблер
а это процессорное время оно на всех процессорах одинаково?  я про rdtsc
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
тоесть 128 это (1-бит знака) 1111111
127 это (0-бит знака) 1111111
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
итого у тя сравнение идет как -1 и 127, и получается что -1 (128) меньше 127
источник

AC

Arti Chornyi Shampin... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
тоесть 128 это (1-бит знака) 1111111
127 это (0-бит знака) 1111111
я там писал и 450000 вместо 45, cmp разве ограничен 127?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
нет, в милисекундах вроде
источник

AC

Arti Chornyi Shampin... in Ассемблер
The Time Stamp Counter (TSC) is a 64-bit register present on all x86 processors since the Pentium. It counts the number of cycles since reset.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Arti Chornyi Shampinyon
я там писал и 450000 вместо 45, cmp разве ограничен 127?
я тебе говорю (как и другой человек) что у тя идет знаковое сравнение, время не может быть отрицательным
источник

AC

Arti Chornyi Shampin... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
я тебе говорю (как и другой человек) что у тя идет знаковое сравнение, время не может быть отрицательным
а на что его можно заменить? я про джамп
источник