2011-09-29 4 views
3

누구나 NOP 연산 코드에 대한 대안을 제공하는 온라인 소스를 알고 있습니까?NOP에 대한 대안

'xchg ax, ax'등과 비슷합니다. 나는 그것을위한 도구가 있다는 것을 꽤 확신한다. 누군가 나를 그 방향으로 향하게 할 수 있을까? http://www.asmpedia.org/index.php?title=NOP

+0

nop 대안을 생산할 수 있습니까? – Spyros

+0

호기심에서, nop 대안을 찾으려는 목적은 무엇입니까? –

+0

nopleds 연구 – Spyros

답변

5

이 페이지는 증가 인코딩 길이와 NOP 대안의 좋은 목록이 있습니다. 그것들은 대부분 멀티 바이트 no ​​op이며 분기와 코드 캐시 타겟 등을 정렬하는 데 사용된다는 점에 유의해야합니다.

+0

이것은 주로 nop 자체에 관한 문제입니다. 나는 '도끼, 도끼'같은 지시를 원할 것입니다. – Spyros

+0

마감일, 대안 또는 달성? –

2

인텔 최적화 매뉴얼 및 인텔과 AMD의 사용 설명서가 모두없는 연산 동등한 기능의 목록이 있어야합니다

+0

[Vol. 2B 4-13] (http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) – user786653

0

그냥 플래그가 아닌 다른 동작을 변경하지 마십시오. 레지스터에 0을 추가하거나 레지스터 자체와 레지스터를 추가하고 레지스터를 자신에게 이동합니다. 0을 빼거나, 0을 빼고 ~ 0을 빼십시오. 비트 테스트 유형의 명령어. 대개는 대상이지만 수정되지 않습니다.

+1

플래그를 변경하면 실제로 NOP가 아닙니다. –

+0

포스터가 실제로 어떤 작업을 수행하는지에 따라 달라지며, 레지스터에 아무 작업도 수행하지 않고 레지스터와 플래그에 아무 작업도 수행하지 않습니다. –

2

일부 쉘 코드 엔진에는 nop 슬 레드 제너레이터가 포함되어 있습니다 (찾고있는 경우).

다양한 길이의 nop 등가물이 다양하기는하지만 철저한 목록은 실용적이지 않습니다.

예를 들어 push eax; pop eax은 실질적으로 nop입니다. (유효한 esp 등으로 가정)

또는 inc eax; dec eax (오버플로가없는 것으로 가정하거나 오버플로 플래그를 재설정합니다).

+0

그래, 나는 그들에 대해, 또는 'xor eax, 0'과 같은 것을 생각하고 있었다. 나는 명부 또는 무언가가 있기를 바랄 것이다. 내가 말했듯이, 나는 과거에 이것을하는 도구를 보았다고 확신합니다. – Spyros

+0

생성기를 작성하려는 경우 : 실제로 작업을 수행하는 게으른 방법은 시스템 상태를 스택에 저장 한 다음 임의의 명령어 (메모리를 변경하거나 인터럽트를 발생시키지 않는 명령어)를 생성 한 다음 시스템을 다시로드하는 것입니다 상태. 다형성 쉘 코드는 일반적으로 비슷한 기능을 수행하지만, 예를 들어 싱글 바이트 명령어 만 사용하는 것과 같은 제한이있을 수 있습니다. – Wood