바이너리 코드의 일부분의 무결성을 검사하는 함수를 만들었습니다.LLVM IR 패스가있는 후 처리 바이너리 파일
이 함수는 llvm 패스로 추가됩니다.
IT는 가 및 최종 주소 플러스 검사 값을 시작해야합니다.
점검 값은 2 진 코드의 계산 결과입니다.
아쉽게도 IR 패스는 llvm의 중간 엔드 부분에 있으며이 부분은 바이너리가 아닌 IR과 함께 작동합니다.
아직 바이너리 코드를 알지 못하고 어떻게 주소를 알고 있습니까? 지금은
, 내 패스와 내가 할 수있는 모든 것을 만들고 난 이진 파일에 가서 미친 사람 ;-)
이내 첫 번째 질문은처럼 헥사 값을 수정할 pyelftool를 사용 : 그것은이다 이 주소를 미리 알 수 있습니다.
나는 blockaddress을 본다.하지만 좀 더 유연한 (지시의 주소) 것이 필요하다.
두 번째 질문은입니다. 누군가가 체크 값을 수정하는 것이 좋습니다. 내 솔루션은 매우 우아하지 않고 나는 플레이트 폼에 의존합니다 .-
나는 이해할 수 있었으면 좋겠다.
감사합니다.
답장을 보내 주셔서 감사합니다. 그래, 내가 LLVM IR과 바이너리 코드를 혼합하려고 시도했는데 전혀 추천받지 못했다는 것을 알고있다. 나는 다른 방법을 찾아야한다고 생각한다. – user3046583