Faits :
A.
A.a. Par ordonnance du 22 juillet 2014, le Ministère public de la République et canton de Genève a ordonné le séquestre, dans le cadre d'une procédure pénale à laquelle étaient parties diverses personnes et sociétés, des avoirs de la société tierce A._ SA, société panaméenne (ci-après : A._), auprès de la Banque X._ à Bâle (ci-après : X._).
A.b. Par arrêt du 8 octobre 2014, la Chambre pénale de recours de la Cour de justice genevoise a partiellement admis le recours de A._ à l'encontre de cette décision. Par courrier du 14 octobre 2014, le ministère public a informé X._ que le séquestre était limité à 4'270'370 GBP et 200'000 EUR.
A.c. Le 5 décembre 2014, l'ayant droit économique de A._ a été entendu, en qualité de personne appelée à donner des renseignements, par le ministère public.
Le 31 décembre 2014, A._ a requis la levée du séquestre. Elle a complété sa requête les 4 et 24 février 2015.
Par ordonnance du 13 mars 2015, le ministère public a levé le séquestre.
A.d. Par ordonnance du 8 mai 2015, le ministère public a prononcé le classement de la poursuite pénale à l'encontre des personnes et sociétés précitées.
A.e. Le 11 mai 2015, A._, à qui ce classement n'apparaît pas avoir été communiqué, a avisé le ministère public qu'elle entendait réclamer une indemnité au sens de l'art. 434 CPP et lui a demandé un délai pour la chiffrer et la motiver.
Par décision du 12 mai 2015, le ministère public a rejeté la demande d'indemnisation de A._, estimant que cette société était un tiers saisi au sens de l'art. 105 al. 1 let. f CPP, qu'elle avait obtenu la libération de ses avoirs et n'avait donc pas subi de dommage.
Par arrêt du 26 août 2015, la Chambre pénale de recours a partiellement admis le recours formé par A._ contre cette décision, a annulé celle-ci et a renvoyé la cause au ministère public.
Par arrêt du 14 juin 2016 (6B_1007/2015), le Tribunal fédéral a déclaré irrecevable un recours en matière pénale formé par A._ contre l'arrêt du 26 août 2015, dès lors que celui-ci ne constituait pas une décision susceptible de recours, faute d'être une décision finale.
B.
Statuant à nouveau, le ministère public a, le 26 août 2016, rendu une décision par laquelle il a alloué à A._ un montant de 11'664 fr., TVA comprise, à titre d'indemnisation selon l'art. 434 CPP.
Par arrêt du 2 novembre 2016, la Chambre pénale de recours a rejeté le recours interjeté par A._ contre cette décision et a condamné celle-ci aux frais de la procédure de recours.
Par arrêt du 10 novembre 2017 (6B_1360/2016), le Tribunal fédéral a partiellement admis le recours formé par A._ contre cet arrêt, a annulé celui-ci et a renvoyé la cause à l'autorité cantonale pour nouvelle décision. En substance, le Tribunal fédéral a tout d'abord considéré que la cour cantonale avait violé l'art. 436 al. 3 CPP en refusant à A._ toute indemnité pour la procédure ayant donné lieu à l'arrêt du 8 octobre 2014, alors que celle-ci avait, dans ce cadre, obtenu partiellement gain de cause. Le Tribunal fédéral a ainsi renvoyé la cause à l'autorité cantonale afin qu'elle statue sur le montant de l'indemnité en question (consid. 3.3). Celui-ci a en outre estimé que l'intervention d'un avocat avait été nécessaire pour préparer l'audition de l'ayant droit économique de A._, tenue le 5 décembre 2014 par le ministère public, et a renvoyé la cause à l'autorité cantonale pour qu'elle évalue le travail raisonnablement admissible à ce stade de la procédure pour sauvegarder les droits de de cette société en sa qualité de tiers saisi (consid. 4.4). Le Tribunal fédéral a encore considéré que la cour cantonale avait violé l'art. 433 al. 2 CPP en refusant à A._ toute indemnité pour ses dépens relatifs à la procédure de recours ayant donné lieu à l'arrêt du 26 août 2015, et a renvoyé la cause à l'autorité cantonale afin qu'elle statue sur ladite indemnité (consid. 5.2.2). Il a de surcroît estimé que la cour cantonale n'avait pas suffisamment motivé sa décision concernant l'indemnisation liée aux honoraires d'avocat relatifs à la procédure de levée du séquestre, et a renvoyé la cause à l'autorité cantonale pour qu'elle évalue combien d'heures de travail avaient été raisonnables pour assurer la défense des droits de A._ à cet égard (consid. 6.2). Enfin, le Tribunal fédéral a indiqué que l'autorité cantonale devrait se prononcer sur les frais et dépens relatifs à l'arrêt du 2 novembre 2016 (consid. 7).
C.
Par arrêt du 16 janvier 2018, rendu à la suite de l'arrêt de renvoi du 10 novembre 2017, la Chambre pénale de recours de la Cour de justice genevoise a partiellement admis le recours formé par A._ contre la décision du 26 août 2016 et a réformé celle-ci en ce sens qu'une indemnité de 20'000 fr. est allouée à cette société pour ses frais d'avocat dans l'ensemble de la procédure P/10759/2014. Elle a par ailleurs condamné A._ à payer 13/15 des frais de la procédure de recours et a dit que ces frais seraient compensés à due concurrence avec l'indemnité allouée.
D.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 16 janvier 2018, en concluant, avec suite de frais et dépens, principalement à sa réforme en ce sens qu'une indemnité qui ne soit pas inférieure à 112'022 fr. 75 lui est allouée pour l'ensemble de la procédure P/10759/2014. Elle conclut pour le reste au renvoi de la cause à l'autorité précédente afin que celle-ci statue sur les frais et indemnités relatifs aux arrêts des 26 août 2015 et 16 janvier 2018. Subsidiairement, elle conclut à son annulation et au renvoi de la cause à l'autorité précédente pour nouvelle décision.
E.
Invités à se déterminer, la cour cantonale s'est référée à son arrêt et a renoncé à présenter des observations, tandis que le ministère public s'est également référé à l'arrêt du 16 janvier 2018.
Considérant en droit :
1.
La recourante reproche à la cour cantonale de s'être, en divers points, écartée des termes de l'arrêt de renvoi du 10 novembre 2017.
1.1. Aux termes de l'art. 107 al. 2 1ère phrase LTF, si le Tribunal fédéral admet le recours, il statue lui-même sur le fond ou renvoie l'affaire à l'autorité précédente pour qu'elle prenne une nouvelle décision. Le principe de l'autorité de l'arrêt de renvoi découle du droit fédéral non écrit (ATF 143 IV 214 consid. 5.3.3 p. 222; 135 III 334 consid. 2.1 p. 335). Conformément à ce principe, l'autorité cantonale à laquelle la cause est renvoyée par le Tribunal fédéral est tenue de fonder sa nouvelle décision sur les considérants de droit de l'arrêt du Tribunal fédéral. Elle est ainsi liée par ce qui a déjà été définitivement tranché par le Tribunal fédéral et par les constatations de fait qui n'ont pas été attaquées devant lui ou l'ont été sans succès (ATF 131 III 91 consid. 5.2 p. 94; 104 IV 276 consid. 3d p. 277 s.; cf. aussi arrêt 6B_267/2018 du 17 mai 2018 consid. 1.1). La motivation de l'arrêt de renvoi détermine dans quelle mesure la cour cantonale est liée à la première décision, décision de renvoi qui fixe aussi bien le cadre du nouvel état de fait que celui de la nouvelle motivation juridique (ATF 135 III 334 consid. 2 p. 335).
1.2. Dans son arrêt du 10 novembre 2017, le Tribunal fédéral a indiqué que la recourante avait conclu, dans son mémoire de recours du 26 mai 2015, au versement d'une indemnité de dépens pour la procédure ayant donné lieu à l'arrêt du 26 août 2015. Il a considéré que la cour cantonale avait violé l'art. 433 al. 2 CPP en refusant à l'intéressée toute indemnité pour ses dépens, sans avoir préalablement attiré son attention sur son obligation de chiffrer et de justifier l'indemnité qu'elle réclamait. Le Tribunal fédéral a ainsi enjoint l'autorité cantonale de se prononcer sur l'indemnité de dépens à allouer à la recourante en rapport avec la décision du 26 août 2015.
Dans l'arrêt attaqué, l'autorité précédente a exposé que la recourante avait, à l'appui de son recours du 26 mai 2015, produit une liste des opérations de ses avocats qui ne comprenait aucune opération relative audit recours. Elle affirme que "la recourante ne peut pas soutenir qu'elle aurait dû être interpellée sur cette lacune ou omission", car les avocats en question, "en produisant spontanément leur relevé avec l'acte de recours, ont montré qu'ils étaient, désormais, parfaitement au courant des conditions posées pour l'indemnisation de leur activité".
L'argumentation de la cour cantonale tombe à faux. En effet, la liste des opérations à laquelle celle-ci se réfère (pièce 60'360 du dossier cantonal) a été produite par la recourante afin d'étayer les prétentions qui constituaient le fond du litige et pour lesquelles elle a recouru devant la cour cantonale. Dans le cadre de ce recours, la recourante a conclu à l'allocation de dépens, lesquels étaient indépendants des opérations figurant sur la liste précitée. Le Tribunal fédéral ayant expressément, dans son arrêt du 10 novembre 2017, enjoint l'autorité cantonale de permettre à la recourante de chiffrer et de documenter ses prétentions en la matière (arrêt 6B_1360/2016 consid. 5.2.2), l'autorité précédente ne pouvait - sous peine de violer le principe de l'autorité de l'arrêt de renvoi - s'abstenir d'entrer en matière sur lesdites prétentions.
Le recours doit être admis sur ce point, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale afin qu'elle se prononce sur les prétentions de la recourante concernant ses dépens relatifs à l'arrêt du 26 août 2015, après lui avoir donné l'occasion de chiffrer et de documenter celles-ci.
1.3. Dans son arrêt du 10 novembre 2017, le Tribunal fédéral a indiqué - relativement à l'indemnisation réclamée par la recourante en lien avec la procédure de levée du séquestre - que la référence à la durée de la procédure pénale ne constituait pas un élément adéquat pour déterminer le nombre d'heures passé par un avocat sur un dossier, que l'existence de ramifications internationales de l'affaire ne pouvait être niée et que, dans la procédure en levée du séquestre, la recourante, dont les fonds avaient été bloqués sur la base d'un soupçon de blanchiment, devait établir non seulement la provenance de l'argent se trouvant sur les comptes séquestrés, mais aussi le fait que cet argent ne provenait pas du blanchiment.
Dans l'arrêt attaqué, l'autorité précédente a, dans son évaluation du nombre raisonnable d'heures de travail d'avocat nécessaires à la défense de la recourante, indiqué que "si l'affaire présentait de prime abord des ramifications internationales laissant augurer une certaine complexité [...], aucune recherche à l'étranger n'[avait] été nécessaire par la suite". Ce faisant, elle s'est contentée de paraphraser la motivation développée dans son arrêt du 2 novembre 2016 (p. 7), laquelle revenait à dire que l'affaire n'avait en définitive pas été compliquée par son aspect international, ce qui a été précisément contredit par les constatations du Tribunal fédéral (arrêt 6B_1360/2016 consid. 6.2). Ainsi, l'autorité précédente a, dans son évaluation du temps qui pouvait être raisonnablement consacré à la défense des intérêts de la recourante, refusé à tort de tenir compte des ramifications internationales de l'affaire.
Par ailleurs, dans l'arrêt attaqué, la cour cantonale a tenu compte de la brièveté de la procédure, en indiquant que le séquestre avait été levé après six mois. Ce faisant, elle a repris un critère qu'elle avait mentionné dans son arrêt du 2 novembre 2016 (p. 7) et qui a pourtant été jugé non pertinent par le Tribunal fédéral (arrêt 6B_1360/2016 consid. 6.2).
Enfin, dans l'arrêt attaqué, l'autorité précédente a indiqué que la durée de 24 heures de travail admis par le ministère public dans la décision du 26 août 2016 paraissait "d'autant plus conforme à une activité de défense nécessaire et raisonnable que la part topique de ces diverses écritures, soit celle strictement consacrée à la justification des trois versements intéressant l'autorité pénale, occupait 4 pages", tandis que "les autres développements portaient sur les rapports entre B._ et l'ex-conjoint [...] de l'ayant-droit économique". La cour cantonale a ainsi repris la motivation qu'elle avait développée à cet égard dans son arrêt du 2 novembre 2016 (p. 7). Or, celle-ci s'écarte manifestement des considérants de l'arrêt de renvoi, selon lesquels, dans la procédure en levée du séquestre, la recourante avait dû non seulement établir la provenance de l'argent se trouvant sur les comptes séquestrés, mais aussi le fait que cet argent ne provenait pas du blanchiment (arrêt 6B_1360/2016 consid. 6.2). La cour cantonale a donc circonscrit de manière inadmissible l'activité qui pouvait être considérée comme raisonnable pour la défense de la recourante concernant la procédure en levée du séquestre.
Le recours doit également être admis sur ce point, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale afin qu'elle évalue à nouveau - en tenant compte des développements qui précèdent - combien d'heures de travail, effectuées par l'avocat chef d'étude et par l'avocat collaborateur, étaient raisonnables pour assurer la défense des droits de la recourante dans la procédure en levée du séquestre.
1.4. Dans son arrêt du 10 novembre 2017, le Tribunal fédéral a indiqué que dans la mesure où la cause devait être retournée à l'autorité cantonale pour nouvelle décision, il n'avait pas à se prononcer sur les frais et dépens de l'arrêt du 2 novembre 2016, cette question devant être réexaminée par celle-ci en fonction du résultat auquel elle parviendrait (arrêt 6B_1360/2016 consid. 7).
Dans l'arrêt attaqué, la cour cantonale a considéré que la recourante obtenait en définitive partiellement gain de cause et devait supporter 13/15 des frais judiciaires, 2/15 de ces frais étant par conséquent laissés à la charge de l'Etat. L'autorité précédente ne s'est en revanche nullement prononcée sur la question des dépens auxquels pouvait prétendre la recourante pour la procédure de recours cantonale. Ainsi, elle ne s'est pas pliée à l'injonction qui lui avait été adressée par le Tribunal fédéral dans son arrêt de renvoi. Le recours doit être admis sur ce point, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale afin qu'elle se prononce sur la question desdits dépens, lesquels dépendront du résultat auquel celle-ci parviendra sur le fond de la cause.
2.
La recourante se plaint d'une violation de son droit d'être entendue. Elle reproche à la cour cantonale d'avoir statué à la suite de l'arrêt du Tribunal fédéral du 10 novembre 2017 sans lui avoir préalablement donné la possibilité de s'exprimer.
2.1. Le droit d'être entendu (art. 29 al. 2 Cst., ainsi que les art. 3 al. 2 let. c et 107 CPP) implique notamment le droit de l'intéressé de s'exprimer sur la cause avant qu'une décision soit rendue sur sa situation juridique (ATF 142 II 218 consid. 2.3 p. 222; 136 I 184 consid. 2.2.1 p. 188). Avant de statuer à la suite d'un renvoi, l'autorité saisie doit respecter le droit d'être entendu garanti par l'art. 29 al. 2 Cst., ce qui implique notamment, en règle générale, qu'elle donne aux parties une nouvelle occasion de s'exprimer. Il ne peut être fait exception à ce principe que lorsque l'autorité inférieure ne dispose d'aucune latitude quant à la décision à rendre (ATF 119 Ia 136 consid. 2 p. 138 ss; 103 Ia 139 consid. 2d p. 139 ss). La nature des questions qu'il reste à trancher détermine dans quelle mesure il subsiste un droit de s'exprimer après l'admission du recours et le renvoi de la cause à l'autorité inférieure (ATF 119 Ia 136 consid. 2 p. 139; 103 Ia 137 consid. 2d p. 139 ss; plus récemment arrêts 6B_636/2017 du 1er septembre 2017 consid. 1; 6B_1366/2016 du 6 juin 2017 consid. 1.2).
Le droit d'être entendu est une garantie constitutionnelle de caractère formel, dont la violation entraîne en principe l'annulation de la décision attaquée, indépendamment des chances de succès du recours sur le fond. Le droit d'être entendu n'est toutefois pas une fin en soi; il constitue un moyen d'éviter qu'une procédure judiciaire ne débouche sur un jugement vicié en raison de la violation du droit des parties de participer à la procédure, notamment à l'administration des preuves. Lorsqu'on ne voit pas quelle influence la violation du droit d'être entendu a pu avoir sur la procédure, il n'y a pas lieu d'annuler la décision attaquée (ATF 143 IV 380 consid. 1.4.1 p. 386 et les références citées).
2.2. La cour cantonale a exposé que les parties s'étaient "abondamment exprimées" lors des échanges d'écritures ayant précédé l'arrêt du 2 novembre 2016. De nouvelles déterminations de leur part n'apparaissaient pas nécessaires, car leurs positions sur les points pour lesquels une nouvelle décision devait être rendue étaient connues, rien ne laissant supposer que celles-ci pussent s'en écarter après l'arrêt du 10 novembre 2017. Selon la cour cantonale, aucune partie n'avait d'ailleurs demandé à pouvoir s'exprimer à la suite de l'arrêt de renvoi précité, ni ne s'était spontanément prononcée.
2.3. Il convient tout d'abord de relever que, contrairement à ce que suggère la cour cantonale, celle-ci ne peut se prévaloir d'une absence de déterminations spontanées des parties ensuite de l'arrêt de renvoi du 10 novembre 2017. C'est bien à la cour cantonale qu'il incombe de garantir le droit d'être entendu.
Il reste donc à déterminer si la recourante avait suffisamment pu, antérieurement à l'arrêt attaqué, user de son droit d'être entendue.
La question ne se pose pas s'agissant des prétentions de la recourante concernant ses dépens relatifs à l'arrêt du 26 août 2015, dès lors que la cause doit de toute manière être renvoyée à l'autorité cantonale afin que celle-ci donne l'occasion à l'intéressée de se prononcer sur ces prétentions avant de statuer à nouveau (cf. consid. 1.2 supra).
Pour le reste, il n'apparaît pas que la recourante aurait pu faire valoir ses arguments par le biais des échanges d'écritures ayant précédé l'arrêt du 2 novembre 2016. En effet, devant l'autorité précédente, la recourante avait fait porter son argumentation sur le principe d'une indemnisation de ses frais de défense concernant la procédure ayant donné lieu à l'arrêt du 8 octobre 2014. Tel avait également été le cas dans le cadre de son recours en matière pénale au Tribunal fédéral. Ainsi, après que l'arrêt de renvoi du 10 novembre 2017 eut admis le principe d'une indemnisation pour les activités liées à ce volet de la procédure (arrêt 6B_1360/2016 consid. 3.3), la recourante devait pouvoir s'exprimer à propos de l'étendue de celle-ci.
Les mêmes considérations peuvent être formulées s'agissant de l'indemnisation des frais de défense de la recourante liés à l'audition de son ayant droit économique. Jusqu'à l'arrêt de renvoi du 10 novembre 2017, la recourante avait fait porter ses arguments sur le principe d'une telle indemnisation, celui-ci ayant finalement été admis par le Tribunal fédéral (arrêt 6B_1360/2016 consid. 4.4). La cour cantonale ne pouvait donc, à la suite de l'arrêt de renvoi, statuer sur ce point sans donner préalablement à la recourante la possibilité de se déterminer sur l'étendue de l'indemnité en question.
Compte tenu de ce qui précède, il apparaît que la cour cantonale a violé le droit d'être entendue de la recourante en ne lui donnant pas la possibilité de s'exprimer avant de rendre une nouvelle décision. La question de savoir si une occasion de se faire entendre devait être accordée à l'intéressée concernant l'activité de ses avocats liée à la procédure en levée du séquestre peut être laissée ouverte, dès lors que l'autorité précédente devra à nouveau statuer sur ce point (cf. consid. 1.3 supra) et que la recourante devra de toute manière se voir offrir l'opportunité de faire valoir des déterminations, qu'elle pourra faire porter sur ce volet de l'affaire.
L'arrêt attaqué doit en définitive être annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision.
3.
Le recours doit être admis (cf. consid. 1.2, 1.3, 1.4 et 2.3 supra). La recourante, qui obtient gain de cause, ne supportera pas de frais judiciaires (art. 66 al. 1 LTF). Elle peut prétendre à des dépens, à la charge du canton de Genève (art. 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Genève versera à la recourante une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 15 juin 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa