decode.idc

来自「IDA教程」· IDC 代码 · 共 36 行

IDC
36
字号
#include "idc.idc"

static main() {
  auto ea,x,y,z,zbyte,SRange,TStrLen,DeCodeBuffer,DeCodeCounter,NotTarget;
  
x = 0x404bee;

  for ( y=RfirstB(x); y != BADADDR; y=RnextB(x,y) ){ 
	for (SRange = 4; SRange < 0x50; SRange++){
		z = y - SRange;
		zbyte = Byte(z);
		if (zbyte == 0xb8){  
			zbyte = Dword(z + 1);
			ea = Dword(zbyte);
			if (ea != 0xFFFFFFFF){ 
				if (Byte(zbyte - 1) == 1){ 
					break;            
							 }
				PatchByte (zbyte - 1,1);
				TStrLen = 0;
				while (TStrLen < 0x30){  
				DeCodeCounter = zbyte + TStrLen;
				DeCodeBuffer = Byte(DeCodeCounter) + 0x80;
				if (DeCodeBuffer == 0x80) break;
				PatchByte (DeCodeCounter,DeCodeBuffer);
				TStrLen++;
								}
				MakeUnknown (zbyte,TStrLen,0);   
				MakeStr (zbyte, DeCodeCounter);  
				break;
					         }
				      }
				                   }
                                                       }
		}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?