Q&A

  • 프로그램 메모리내 코드 바꾸기 ?
ex)))))))
//-------------------------------------
procedure test;
asm

  nop

end;
//-------------------------------------
procedure aaa;
var
p1:pbyte;

begin

p1:=@test;

p1^:=$90; {nop}

end;
//-------------------------------------


메인 --------------- 이걸 실행함
begin

   aaa;

end;



위는 procedure test      nop 메모리 위치에  
      procedure aaa 에서   nop 명령을 입력하려는 예제고요
실행하면 윈도우에서  에러가  발생합니다.

윈도우 메모리 법칙에 어긋나므로..@_@

그런데 이렇게 바꾸는 프로그램도 많이 있던데요.
어떻게 바꿀수가 있나요 ?

아니면 자신의 소스코드라도 바꿀수 잇는 방법이
있나요 ?
1  COMMENTS
  • Profile
    천희택 2005.12.27 01:28
    가장 흔한 예로 버퍼 오버플로우가 있습니다. 일반적으로 흔히들 말하는 버그이지요..

    이 버그를 이용해서 자신이 원하는 프로그램을 실행시킬 수 있습니다. 이를 테면.....

    root 권한의 쉘을 띄운다던지..... 윈도우에서는 cmd 콘솔창이죠.