패치를 적용한 후 패치 내에 삽입된 코드를 식별할 수 있는 모든 도구 [닫기]

패치를 적용한 후 패치 내에 삽입된 코드를 식별할 수 있는 모든 도구 [닫기]

소스 파일에 적용된 패치의 수정 사항을 식별할 수 있는 도구(명령줄)나 방법이 있습니까? 예를 들어-

  1. 패치에 새 코드 삽입
  2. 패치에서 변수 또는 함수 이름 변경

패치 유틸리티가 패치가 적용되었는지 식별하는 기능을 제공한다는 것을 알고 있지만 더 나아가 적용된 패치가 수정되었는지 확인하고 싶습니다.

아래의 원래 패치를 고려하십시오 -

  /* stack overflow, return an error */  
-    if (*pStackPtr >= CDL_STACK_SIZE)  
+    if (*pStackPtr >= (CDL_STACK_SIZE - 1)) {  
+        ALOGE("b/34031018, stackPtr(%d)", *pStackPtr);  
+        android_errorWriteLog(0x534e4554, "34031018");  
             return EAS_ERROR_FILE_FORMAT;  
+    }  

누군가 이 패치를 다음과 같이 수정했습니다.

     /* stack overflow, return an error */  
-    if (*pStackPtr >= CDL_STACK_SIZE)  
     int stksize =  *pStackPtr;  // or something like this  
+    if (stksize >= (CDL_STACK_SIZE - 1)) {    
+        ALOGE("b/34031018, stackPtr(%d)", stksize);  
+        android_errorWriteLog(0x534e4554, "34031018");  
             return EAS_ERROR_FILE_FORMAT;  
+    }

나는 패치된 소스 코드(위와 같이 수정될 수 있음), 원본 패치, 그리고 내 로컬 팀의 오픈 소스 저장소에서 받은 실제 패치된 소스 파일을 가지고 있습니다. 이제 자동화된 도구(또는 일련의 명령)를 사용하여 원래 패치가 적용되었지만 일부 수정되었는지 감지하고 싶습니다. 다양한 오픈 소스의 패치가 너무 많고 시간이 많이 걸리기 때문에 수동으로 분석하고 싶지 않습니다. 다른 모든 옵션을 사용한 후 원래 패치를 수정하기 위해 포럼에서 이 질문을 한다고 가정하십시오. 사람들이 그렇게 하지 않도록 설득하는 것입니다.

관련 정보