diff --git a/libr/bin/blang.c b/libr/bin/blang.c index 09f7186516..da4b50443a 100644 --- a/libr/bin/blang.c +++ b/libr/bin/blang.c @@ -40,6 +40,10 @@ static bool check_swift(RBinSymbol *sym) { return false; } +static bool check_golang(RBinSymbol *sym) { + return !strncmp (sym->name, "go.", 3); +} + static inline bool is_cxx_symbol (const char *name) { r_return_val_if_fail (name, false); if (!strncmp (name, "_Z", 2)) { @@ -106,6 +110,10 @@ R_API int r_bin_load_languages(RBinFile *binfile) { return R_BIN_NM_RUST; } } + if (check_golang (sym)) { + info->lang = "go"; + return R_BIN_NM_GO; + } if (!cantbe.swift) { bool hasswift = false; if (!swiftIsChecked) { @@ -213,6 +221,8 @@ R_API const char *r_bin_lang_tostring(int lang) { switch (lang & 0xffff) { case R_BIN_NM_SWIFT: return "swift"; + case R_BIN_NM_GO: + return "go"; case R_BIN_NM_JAVA: return "java"; case R_BIN_NM_KOTLIN: