From 9f25d534b69c5dfa48c7099e1a9b7d8ecdcfa347 Mon Sep 17 00:00:00 2001 From: stellarbear Date: Mon, 16 Apr 2018 14:51:14 +0300 Subject: [PATCH] Comments and errors in English --- Build/Test/YaraSharp.dll | Bin 1800704 -> 1800704 bytes Build/Test/YaraTest.exe | Bin 6656 -> 6144 bytes README.md | 3 +-- YaraSharp/AssemblyInfo.cpp | 6 +++--- YaraSharp/Compiler.cpp | 22 ++++++++++---------- YaraSharp/Context.cpp | 4 ++-- YaraSharp/Exceptions.cpp | 2 +- YaraSharp/Rules.cpp | 2 +- YaraSharp/Rules.h | 4 ++-- YaraSharp/Scanner.cpp | 12 +++++------ YaraSharp/YaraSharp.cpp | 41 ++++++++++++++++++------------------- YaraSharp/YaraSharp.h | 3 --- YaraTest/Program.cs | 2 +- 13 files changed, 48 insertions(+), 53 deletions(-) diff --git a/Build/Test/YaraSharp.dll b/Build/Test/YaraSharp.dll index 0fe85d985860cf45310cbdf212bfdbb55d105647..efdd5bfbc8b20356d5891d1b8e9fcc3ed7588180 100644 GIT binary patch delta 67589 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 delta 67664 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 diff --git a/README.md b/README.md index 91cd557..17d43c9 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,7 @@ using (YaraSharp.CContext YSContext = new YaraSharp.CContext()) //... } } - // Log errorsможно и так - + // Log errors } ``` For async scanning use **must** call destroy methods: diff --git a/YaraSharp/AssemblyInfo.cpp b/YaraSharp/AssemblyInfo.cpp index f2e0a51..998258e 100644 --- a/YaraSharp/AssemblyInfo.cpp +++ b/YaraSharp/AssemblyInfo.cpp @@ -14,10 +14,10 @@ using namespace System::Security::Permissions; [assembly:AssemblyTitleAttribute(L"YaraSharp")]; [assembly:AssemblyDescriptionAttribute(L"")]; [assembly:AssemblyConfigurationAttribute(L"")]; -[assembly:AssemblyCompanyAttribute(L"")]; +[assembly:AssemblyCompanyAttribute(L"SB")]; [assembly:AssemblyProductAttribute(L"YaraSharp")]; [assembly:AssemblyCopyrightAttribute(L"Copyright (c) 2018")]; -[assembly:AssemblyTrademarkAttribute(L"")]; +[assembly:AssemblyTrademarkAttribute(L"stellarbears")]; [assembly:AssemblyCultureAttribute(L"")]; // @@ -31,7 +31,7 @@ using namespace System::Security::Permissions; // You can specify all the value or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly:AssemblyVersionAttribute("1.0.*")]; +[assembly:AssemblyVersionAttribute("1.0.0")]; [assembly:ComVisible(false)]; diff --git a/YaraSharp/Compiler.cpp b/YaraSharp/Compiler.cpp index 8e8d1c8..014fdc0 100644 --- a/YaraSharp/Compiler.cpp +++ b/YaraSharp/Compiler.cpp @@ -3,7 +3,7 @@ // CCompiler namespace YaraSharp { - // Конструктор + // Constructor CCompiler::CCompiler(Dictionary^ ExternalVariables) { YR_COMPILER* TestCompiler; @@ -15,7 +15,7 @@ namespace YaraSharp SetCompilerExternals(ExternalVariables); SetCompilerCallback(); } - // Деструктор + // Destructor CCompiler::~CCompiler() { if (Compiler) yr_compiler_destroy(Compiler); } @@ -26,7 +26,7 @@ namespace YaraSharp YR_COMPILER_CALLBACK_FUNC CallbackPointer = (YR_COMPILER_CALLBACK_FUNC)(Marshal::GetFunctionPointerForDelegate(CompilerCallback)).ToPointer(); yr_compiler_set_callback(Compiler, CallbackPointer, NULL); } - // Добавление правил в коллекцию из файла + // Add a single rule int CCompiler::AddFile(String^ FilePath) { FILE* File; @@ -44,13 +44,13 @@ namespace YaraSharp return errors; } - // Добавление нескольких файлов + // Add several files void CCompiler::AddFiles(List^ FilePathList) { for each (auto FilePath in FilePathList) AddFile(FilePath); } - // Получение списка правил + // Get rule list CRules^ CCompiler::GetRules() { YR_RULES* Rules; @@ -60,12 +60,12 @@ namespace YaraSharp return gcnew CRules(Rules); } - // Получение списка ошибок + // Get error list List^ CCompiler::GetErrors() { return this->Errors; } - // Установка externals + // Set externals void CCompiler::SetCompilerExternals(Dictionary^ ExternalVariables) { if (ExternalVariables) @@ -87,21 +87,21 @@ namespace YaraSharp else if (VariableType == String::typeid) ExternalError = yr_compiler_define_string_variable(Compiler, VariablePointer, CTX.marshal_as((String^)ExternalVariable.Value)); else - throw gcnew NotSupportedException(String::Format("Неподдерживаемый тип external variable: '{0}'", VariableType->Name)); + throw gcnew NotSupportedException(String::Format("Unsupported external variable: '{0}'", VariableType->Name)); if (ExternalError != ERROR_SUCCESS) - ErrorUtility::ThrowOnError("(Compiler) Не удалось инициализировать external variable"); + ErrorUtility::ThrowOnError("(Compiler) Error during external variable intialization"); } } } - // Обработка ответа + // Callback void CCompiler::HandleCompilerCallback(int ErrorLevel, const char* Filename, int LineNumber, const char* Message, void* UserData) { UNREFERENCED_PARAMETER(ErrorLevel); UNREFERENCED_PARAMETER(UserData); - auto msg = String::Format("{0} в строке {1} в файле: {2}", + auto msg = String::Format("{0} in line {1} in file: {2}", marshal_as(Message), LineNumber, Filename ? marshal_as(Filename) : "[none]"); diff --git a/YaraSharp/Context.cpp b/YaraSharp/Context.cpp index dc74440..173cd65 100644 --- a/YaraSharp/Context.cpp +++ b/YaraSharp/Context.cpp @@ -3,9 +3,9 @@ // CContext namespace YaraSharp { - // Конструктор + // Constructor CContext::CContext() { ErrorUtility::ThrowOnError(yr_initialize()); } - // Деструктор + // Destructor CContext::~CContext() { ErrorUtility::ThrowOnError(yr_finalize()); } void CContext::Destroy() { delete this; } } \ No newline at end of file diff --git a/YaraSharp/Exceptions.cpp b/YaraSharp/Exceptions.cpp index 2cc8289..267f386 100644 --- a/YaraSharp/Exceptions.cpp +++ b/YaraSharp/Exceptions.cpp @@ -24,7 +24,7 @@ namespace YaraSharp String^ ErrorUtility::NiceErrorCode(int error) { - // TODO: сделать нормальное описаниу + // TODO: nice erros switch (error) { case ERROR_INSUFICIENT_MEMORY: diff --git a/YaraSharp/Rules.cpp b/YaraSharp/Rules.cpp index 3d944c3..eeddddd 100644 --- a/YaraSharp/Rules.cpp +++ b/YaraSharp/Rules.cpp @@ -74,7 +74,7 @@ namespace YaraSharp break; } - // Отсеиваем дубликаты + // Distinct if (!Result->ContainsKey(MetaID)) Result->Add(MetaID, MetaValue); } diff --git a/YaraSharp/Rules.h b/YaraSharp/Rules.h index 8387230..1dbb3f5 100644 --- a/YaraSharp/Rules.h +++ b/YaraSharp/Rules.h @@ -21,9 +21,9 @@ namespace YaraSharp property String^ Identifier; property List^ Tags; property Dictionary^ Meta; + // It's some kind of useless here + // Match has already a section for this // property List^ Strings; - // Несколько бесполезно, поскольку в Match уже имеется ключ, - // соответвующий найденному совпадению CRule(); CRule(YR_RULE* Rule); diff --git a/YaraSharp/Scanner.cpp b/YaraSharp/Scanner.cpp index 61e447d..e0a4915 100644 --- a/YaraSharp/Scanner.cpp +++ b/YaraSharp/Scanner.cpp @@ -3,7 +3,7 @@ // CScanner namespace YaraSharp { - // Конструктор + // Constructor CScanner::CScanner(CRules^ rules, Dictionary^ ExternalVariables) { YR_SCANNER* TestScanner; @@ -12,10 +12,10 @@ namespace YaraSharp SetScannerExternals(ExternalVariables); } - // Деструктор + // Destructor CScanner::~CScanner() { if (Scanner) yr_scanner_destroy(Scanner); } - // Установка externals + // Set externals void CScanner::SetScannerExternals(Dictionary^ ExternalVariables) { if (ExternalVariables) @@ -37,15 +37,15 @@ namespace YaraSharp else if (VariableType == String::typeid) ExternalError = yr_scanner_define_string_variable(Scanner, VariablePointer, CTX.marshal_as((String^)ExternalVariable.Value)); else - throw gcnew NotSupportedException(String::Format("Неподдерживаемый тип external variable: '{0}'", VariableType->Name)); + throw gcnew NotSupportedException(String::Format("Unsupported external variable: '{0}'", VariableType->Name)); if (ExternalError != ERROR_SUCCESS) - ErrorUtility::ThrowOnError("(Scanner) Не удалось инициализировать external variable"); + ErrorUtility::ThrowOnError("(Scanner) Error during external variable intialization"); } } } - // Обработка ответа + // Callback int CScanner::HandleScannerCallback(int message, void* data, void* context) { if (message == CALLBACK_MSG_RULE_MATCHING) diff --git a/YaraSharp/YaraSharp.cpp b/YaraSharp/YaraSharp.cpp index 015f3dc..6d2ee07 100644 --- a/YaraSharp/YaraSharp.cpp +++ b/YaraSharp/YaraSharp.cpp @@ -3,13 +3,13 @@ // CMatches namespace YaraSharp { - // Проверка правил + // Check list of yara files Dictionary^>^ CYaraSharp::CheckYaraRules([Out] List^ FilePathList, Dictionary^ ExternalVariables) { Dictionary^>^ CompilationErrors = gcnew Dictionary^>(); - // Последовательная проверка + // Iterative check for (int i = 0; i < FilePathList->Count; i++) { CCompiler^ TestCompiler = gcnew CCompiler(ExternalVariables); @@ -23,7 +23,7 @@ namespace YaraSharp delete TestCompiler; } - // Одновременная проверка + // Simultaneous check bool SuccessFlag = false; while (!SuccessFlag) { @@ -37,7 +37,7 @@ namespace YaraSharp FilePathList->Remove(FilePath); SuccessFlag = false; - // В случае ошибки необходимо создавать новый компилятор + // New compiler must be created if we fail delete TestCompiler; break; } @@ -48,36 +48,35 @@ namespace YaraSharp } - // Компиляция правил + // Rule compilation CRules^ CYaraSharp::CompileFromFiles(List^ FilePathList, Dictionary^ ExternalVariables, [Out] Dictionary^>^% CompilationErrors) { - // TODO: добавить поддержку namespace + // TODO: add namespace support - // Проверка правил на корректность + // First: check CompilationErrors = CheckYaraRules(FilePathList, ExternalVariables); - // Компиляция правил + // Second: compile CCompiler^ Compiler = gcnew CCompiler(ExternalVariables); Compiler->AddFiles(FilePathList); CRules^ Result = Compiler->GetRules(); delete Compiler; - // Возвращаем скомпилированные правила + // Return compiled rules return Result; } - // Сканирование файла + // Scanning file List^ CYaraSharp::ScanFile(String^ Path, CRules^ Rules, Dictionary^ ExternalVariables, int Timeout) { CScanner^ FScanner = gcnew CScanner(Rules, ExternalVariables); - // Проверка отключена, так как слишком длинные имена файлов игнорируются - // Проверка на существование сканируемого файла на вас + // File existance check disabled. This cause crashes on long filenames (260+ symbols) //if (!File::Exists(Path)) // throw gcnew FileNotFoundException(Path); - // Callback секция + // Callback section List^ Results = gcnew List(); GCHandle ResultsHandle = GCHandle::Alloc(Results); void* ResultsPointer = GCHandle::ToIntPtr(ResultsHandle).ToPointer(); @@ -86,17 +85,17 @@ namespace YaraSharp GCHandle CallbackHandle = GCHandle::Alloc(ScannerCallback); YR_CALLBACK_FUNC CallbackPointer = (YR_CALLBACK_FUNC)Marshal::GetFunctionPointerForDelegate(ScannerCallback).ToPointer(); - // Сканирование + // Scanning ErrorUtility::ThrowOnError(yr_rules_scan_file(Rules, (marshal_as(Path)).c_str(), 0, CallbackPointer, ResultsPointer, Timeout)); return Results; } - // Сканирование процесса + // Scanning process (not yet tested) List^ CYaraSharp::ScanProcess(int PID, CRules^ Rules, int Timeout, Dictionary^ ExternalVariables) { CScanner^ PScanner = gcnew CScanner(Rules, ExternalVariables); - // Callback секция + // Callback section List^ Results = gcnew List(); GCHandle ResultsHandle = GCHandle::Alloc(Results); void* ResultsPointer = GCHandle::ToIntPtr(ResultsHandle).ToPointer(); @@ -105,12 +104,12 @@ namespace YaraSharp GCHandle CallbackHandle = GCHandle::Alloc(ScannerCallback); YR_CALLBACK_FUNC CallbackPointer = (YR_CALLBACK_FUNC)Marshal::GetFunctionPointerForDelegate(ScannerCallback).ToPointer(); - // Сканирование + // Scanning ErrorUtility::ThrowOnError(yr_rules_scan_proc(Rules, PID, 0, CallbackPointer, ResultsPointer, Timeout)); return Results; } - // Сканирование памяти + // Scanning memory (not yet tested) List^ CYaraSharp::ScanMemory(array^ Buffer, CRules^ Rules, Dictionary^ ExternalVariables, int Timeout) { if (Buffer == nullptr || Buffer->Length == 0) @@ -121,12 +120,12 @@ namespace YaraSharp return ScanMemory(BufferPointer, Buffer->Length, Rules, ExternalVariables, Timeout); } } - // Сканирование памяти + // Scanning memory (not yet tested) List^ CYaraSharp::ScanMemory(uint8_t* Buffer, int Length, CRules^ Rules, Dictionary^ ExternalVariables, int Timeout) { CScanner^ MScanner = gcnew CScanner(Rules, ExternalVariables); - // Callback секция + // Callback section List^ Results = gcnew List(); GCHandle ResultsHandle = GCHandle::Alloc(Results); void* ResultsPointer = GCHandle::ToIntPtr(ResultsHandle).ToPointer(); @@ -135,7 +134,7 @@ namespace YaraSharp GCHandle CallbackHandle = GCHandle::Alloc(ScannerCallback); YR_CALLBACK_FUNC CallbackPointer = (YR_CALLBACK_FUNC)Marshal::GetFunctionPointerForDelegate(ScannerCallback).ToPointer(); - // Сканирование + // Scanning ErrorUtility::ThrowOnError(yr_rules_scan_mem(Rules, Buffer, Length, 0, CallbackPointer, ResultsPointer, Timeout)); return Results; diff --git a/YaraSharp/YaraSharp.h b/YaraSharp/YaraSharp.h index 24384ed..aa01d03 100644 --- a/YaraSharp/YaraSharp.h +++ b/YaraSharp/YaraSharp.h @@ -5,16 +5,13 @@ namespace YaraSharp public ref class CYaraSharp { private: - // Проверка файлов Dictionary^>^ CheckYaraRules([Out] List^ FilePathList, Dictionary^ ExternalVariables); public: - // Компиляция правил CRules^ CompileFromFiles(List^ FilePathList, Dictionary^ ExternalVariables, [Out] Dictionary^>^% CompilationErrors); - // Сканироварние List^ ScanFile(String^ Path, CRules^ Rules, Dictionary^ ExternalVariables, int Timeout); List^ ScanProcess(int PID, CRules^ Rules, int Timeout, Dictionary^ ExternalVariables); List^ ScanMemory(array^ Buffer, CRules^ Rules, Dictionary^ ExternalVariables, int Timeout); diff --git a/YaraTest/Program.cs b/YaraTest/Program.cs index 652ca42..b650dbf 100644 --- a/YaraTest/Program.cs +++ b/YaraTest/Program.cs @@ -32,7 +32,7 @@ namespace YaraTest using (YaraSharp.CRules YSRules = YSInstance.CompileFromFiles(Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "..\\..\\signatures"), "*.yar", SearchOption.AllDirectories).ToList(), Externals, out Errors)) { // Some file to test yara rules - string Filename = @"\\?\"; + string Filename = @"\\?\D:\test\MW vol 5.0.rar"; // Get matches List Matches = YSInstance.ScanFile(Filename, YSRules,