当前位置: 首页 > 工具软件 > CLFS > 使用案例 >

clfs逆向1

戚晨
2023-12-01
signed __int64 __fastcall CClfsBaseFilePersisted::AllocSymbol(CClfsBaseFilePersisted *this, unsigned int endofSymZoneLenDup, void **endofSymZonePtrFrom)
{
  void **endofSymZonePtrRet; // rsi
  __int64 endofSymZoneLen; // rbp
  _CLFS_BASE_RECORD_HEADER *BaseLogRecord; // rax
  CClfsBaseFilePersisted *that; // r8
  _CLFS_BASE_RECORD_HEADER *v7; // rdi
  _CLFS_LOG_BLOCK_HEADER *hdr; // rcx
  __int64 cbSymbolZone; // r8
  char *endofSymZonePtr; // rbx
  signed __int64 result; // rax

  endofSymZonePtrRet = endofSymZonePtrFrom;
  endofSymZoneLen = endofSymZoneLenDup;
  BaseLogRecord = CClfsBaseFile::GetBaseLogRecord(this);
  v7 = BaseLogRecord;
  if ( !BaseLogRecord )
    return 3222929421i64;
  hdr = that->field_rgBlocks_30[2].pbImage;
  *endofSymZonePtrRet = 0i64;
  cbSymbolZone = BaseLogRecord->cbSymbolZone;
  if ( (char *)&BaseLogRecord[1] + cbSymbolZone + endofSymZoneLen > (char *)(&hdr->MajorVersion + hdr->SignaturesOffset) )
    return 3221225507i64;
  endofSymZonePtr = (char *)&BaseLogRecord[1] + cbSymbolZone;
  memset(endofSymZonePtr, 0, (unsigned int)endofSymZoneLen);
  v7->cbSymbolZone += endofSymZoneLen;
  result = 0i64;
  *endofSymZonePtrRet = endofSymZonePtr;
  return result;
}
 类似资料: