应用补丁后可以识别补丁内代码插入的任何工具

应用补丁后可以识别补丁内代码插入的任何工具

是否有任何工具(命令行)或方法可以识别源文件中应用的补丁的修改?例如-

  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;  
+    }

我在本地团队拥有已修补的源代码(可能会像上面那样进行修改)、原始补丁和从开源存储库收到的实际已修补的源文件。现在;我想用任何自动化工具(或命令序列)检测原始补丁是否已应用,但已进行了一些修改。我不想手动分析它,因为各种开源的补丁太多了,它消耗了大量时间,请假设我在用尽所有其他告诉或说服人们不要这样做的选项后在论坛上问这个问题修改原来的补丁。

相关内容