이 주제에 대한 여러 기사를 this one으로 읽고 대부분의 기술을 구현했습니다. 하지만 바이너리에 추가로 참조되지 않거나 전혀 사용되지 않는 코드를 추가하려고합니다. 이상적으로이 코드를 도구를 통해 빌드 된 바이너리에 추가 할 수 있기를 원합니다. 그런 도구가 있습니까? 그런 도구를 만드는 방법에 대한 아이디어가 있습니까? 또는 생성하고 C++ 프로그램에 사용하지 않는 코드를 추가하는 방법은 무엇입니까? 어디로 넣어야합니까?리버스 엔지니어링 방지 C++ 바이너리
Skype 내부 분석을 통해 나는 코드를 최대한 엉망으로 읽었다 고 읽었습니다. 이를 달성하는 한 가지 방법은 각 호출을 동적으로 계산하는 것입니다.
if (sin(a) == 42) {
do_dummy_stuff() ;
}
더미 함수를 입력해야합니까? 아니면 더미 함수가 사용되지 않는 코드입니까?
업데이트 : 이진에 결코 사용하지 않는 코드를 추가하려는 이유는 많은 전자 책을 제공하기 때문입니다. 나는 각각의 바이너리가 약간 다르므로 하나가 손상되면 다른 것들은 존재하지 않기를 바란다.
관심이 있다면 실제로 프로그램에서 어떤 코드가 호출되는지 알아내는 것이 어려울 것이라고 상상하지는 않습니다. 또한, 컴파일러는 이것을 최적화하지 말라는 지시를받을 필요가있을 것입니다. –
영리한 컴파일러는 '죄'가 결코 42만큼 커지지 않으며 전체 p.o.c. –
@Anthony Burleigh : 제발, 업데이트 –