2011-03-10 5 views
0

, 나는 모두가 내 응용 프로그램은 스택 손상과 충돌하지 않으려이 꽤 걱정 소리 "warning C4731: ... frame pointer register 'ebx' modified by inline assembly code"Gladman AES 라이브러리 - 컴파일러 경고를 무시해도 안전합니까?

말,하지만 난 겨우 86 어셈블러를 읽을 수 aes_modes.c에 경고를 현재 gladman AES library 얻고 컴파일하기. 이 경고가 무시 될 수있는 경우 조언을 해 줄 수 있습니까?

답변

0

저장하고 복원하면 무시해도 안전합니다. 예를 들면.

push ebx 
;use the ebx to do something else 
pop ebx 

이 내용은 오류의 의미를 설명하는 MSDN page을 참조하십시오.

코드에서 완료되지 않은 경우 추가하고 테스트 할 수 있습니다.

+0

코드에서 완료되지 않았지만 코드가 어셈블러의 결과를 C로 반환하는 방법으로 ebx를 사용하고있는 것 같기 때문에 권장대로 쉽게 수정할 수 없습니다. –

+0

Can 당신은 Google 코드 검색 파일을 가리킨다. – Zimbabao

+0

http://gladman.plushost.co.uk/oldsite/AES/에서 코드를 다운로드 했습니까? – Zimbabao

0

이 경고를 무시하는 것은 안전하지 않은 것으로 보입니다. XP에서 코드가 제대로 작동했지만 Windows 7에서 테스트했을 때 aes_decrypt 어셈블러 루틴 내에서 충돌이 발생했습니다. 나는 순수한 C 버전으로 넘어갈 것이다.

관련 문제