-
Notifications
You must be signed in to change notification settings - Fork 7.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(route/hex-rays): update data acquisition method #17130
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit refactors the data acquisition method in the hex-rays route. It adds type annotations for the Data, DataItem, and Route types. It also imports the Context type from the hono library. The maintainers list is updated to include Mas0n. The handler function now takes a Context parameter and returns a Promise<Data>. The link to fetch data is updated to 'https://hex-rays.com/blog/'. The parsing logic for the list of articles is modified to use the correct selectors. The category and description properties of each article are updated to match the new HTML structure. The image property is added to the returned data object.
github-actions
bot
added
the
Auto: Route Test Complete
Auto route test has finished on given PR
label
Oct 14, 2024
Successfully generated as following: http://localhost:1200/hex-rays/news - Success ✔️<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Hex-Rays Blog</title>
<link>https://hex-rays.com/blog/</link>
<atom:link href="http://localhost:1200/hex-rays/news" rel="self" type="application/rss+xml"></atom:link>
<description>Hex-Rays Blog - Powered by RSSHub</description>
<generator>RSSHub</generator>
<webMaster>contact@rsshub.app (RSSHub)</webMaster>
<language>en</language>
<image>
<url>https://hex-rays.com/hubfs/Ico-logo.png</url>
<title>Hex-Rays Blog</title>
<link>https://hex-rays.com/blog/</link>
</image>
<lastBuildDate>Mon, 14 Oct 2024 13:55:05 GMT</lastBuildDate>
<ttl>5</ttl>
<item>
<title>Madame de Maintenon tells us everything about IDA 9.0, subscriptions, ownership, and her new appearance</title>
<description><div class="post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p style="text-align: center; font-size: 20px;"><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><strong>An interview with Madame de Maintenon</strong></span></p>
<!--more-->
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px; font-weight: bold;"><span style="font-family: Verdana, Geneva, sans-serif;"><span style="color: #000000;">Q: A lot has happened at Hex-Rays in the past week: a major new release with IDA 9.0, the launch of IDA Classroom and IDA Pro OEM, Teams and Private Lumina becoming add-ons, a new website, a customer portal for downloading license keys, updated technical documentation, and even changes to subscription terms. So, what’s the latest, Your Ladyship?</span></span></p>
<p style="font-size: 16px;"><span style="font-family: Verdana, Geneva, sans-serif;"><span style="color: #000000; font-weight: normal;"><span style="font-size: 16px;"><span style="color: #000000;">[Madame de Maintenon]</span></span>&nbsp;</span></span><span style="background-color: transparent; font-family: Verdana, Geneva, sans-serif;">I<span style="color: #000000;">ndeed, it’s been quite an eventful week for our users! One of the key highlights is our new customer portal, where users can now download installers, utility binaries, and their IDA license keys—no need to email us anymore for those. In the future, customers will be able to manage their entire license base, view their order history, and access invoices through the portal. It will also provide access to data feeds, like signature bundles, which users can opt to download.&nbsp;</span></span></p>
<p style="font-size: 16px;"><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">As soon as we launched, some of our most enthusiastic users were already trying to break into the system to get their hands on unpaid license keys. This caused some issues, and we sincerely apologize if anyone experienced trouble downloading their keys for the new IDA 9.0. We’re also working on making the process for obtaining IDA Free licenses more straightforward, and we expect most of the open cases to be resolved by now. As always, our valued customers are welcome to reach out to our support team at <a href="mailto:support@hex-rays.com" style="color: #000000;">support@hex-rays.com</a> if they encounter any issues.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px; font-weight: bold;"><span style="color: #000000;"><span style="background-color: transparent; font-family: Verdana, Geneva, sans-serif;">Q: I came across a social media post claiming that the new IDA prices have almost quadrupled. Is that true?</span></span></p>
<p style="font-size: 16px; font-weight: normal;"><span style="color: #000000;"><span style="background-color: transparent;"><span style="font-family: Verdana, Geneva, sans-serif;"><span style="color: #000000; font-weight: normal;"><span style="font-size: 16px;">[Madame de Maintenon]</span><span style="font-weight: bold; font-size: 16px;">&nbsp;</span></span></span></span></span><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;">Oh, that doesn’t sound right at all! In fact, with the shift to a subscription model, IDA Pro licenses, on average, are <strong>45% cheaper</strong> to get started with compared to the former perpetual licenses. For example, the new IDA Pro Essential package, which includes two cloud-based decompilers, is now priced at just $/<span style="font-size: 16px;">€ </span>1,099 per year, and the IDA Pro Expert-2, with two local decompilers, is now available for $/<span style="font-size: 11px;"><span style="font-size: 16px;">€</span> </span>2,999 per year. Under the previous perpetual model, these packages were priced at $/<span style="font-size: 11px;"><span style="font-size: 16px;">€</span> </span>5,862, so the new pricing offers <strong>upfront savings of 81% and 49%</strong>, respectively. Over a typical customer lifecycle—let's say four years—the overall <strong>cost under the subscription model will be comparable to what customers would have paid under the previous perpetual model</strong> with annual support renewals. For example, under perpetual licensing, a user would pay 'X' in the first year, and 40% of 'X' in each subsequent year for support, adding up to <strong>2.2X</strong> over four years. With subscriptions, customers pay an average of 0.55X annually, also totaling <strong>2.2X</strong> over the same period. </span></p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><span style="background-color: transparent;">Customers now also benefit from </span><strong style="background-color: transparent;">clearer discount options</strong><span style="background-color: transparent;">. For example, committing to a </span><strong style="background-color: transparent;">3-year subscription</strong><span style="background-color: transparent;"> reduces the annual cost to </span><strong style="background-color: transparent;">0.48X</strong><span style="background-color: transparent;">, and with the highest volume discount applied, the price can drop even further to </span><strong style="background-color: transparent;">0.34X </strong><span style="background-color: transparent;">per year.</span><strong style="background-color: transparent;"> </strong><span style="background-color: transparent;">These are average figures across the board, but rest assured, we’re committed to making the transition as smooth as possible. If any pricing issues arise, we’ll address them immediately.</span></span></p>
<p>&nbsp;</p>
<p style="font-weight: bold;"><span style="color: #000000;"><span style="background-color: transparent; font-family: Verdana, Geneva, sans-serif;">Q: </span><span style="background-color: transparent; font-family: Verdana, Geneva, sans-serif;">Despite the price reductions, is it possible that some existing customers might see their bill go up?</span></span></p>
<p><span style="font-family: Verdana, Geneva, sans-serif;"><span style="color: #000000;"><span style="background-color: transparent; font-weight: normal;">[Madame de Maintenon]</span><span style="background-color: transparent;">&nbsp;We’re committed to ensuring that it doesn’t happen, and we strongly encourage customers to reach out if their calculations suggest otherwise. There are a few cases we are particularly mindful of </span></span><span style="font-weight: normal;"><span style="color: #000000;"><span style="background-color: transparent;"><span style="font-weight: bold;">a)</span> </span><span style="background-color: transparent; font-weight: bold;">Long-standing customers</span><span style="background-color: transparent;"> who don’t frequently purchase new licenses may not immediately see the savings outlined above. We are dedicated to making their transition as smooth as possible, so they should definitely get in touch.<span style="font-weight: bold;">&nbsp;</span></span></span><span style="color: #000000;"><span style="background-color: transparent;"><span style="font-weight: bold;">b)</span> </span><span style="background-color: transparent; font-weight: bold;">Customers who mainly use IDA as a disassembler</span><span style="background-color: transparent;"> and don’t need decompilers should also contact us, as we have tailored solutions for their specific needs.&nbsp;</span></span></span><span style="color: #000000;"><span style="font-weight: normal;"><span style="background-color: transparent;"><span style="font-weight: bold;">c)</span> <span style="font-weight: bold;">For those who previously bought an </span></span><span style="background-color: transparent; font-weight: bold;">odd number of decompilers</span></span><span style="background-color: transparent;"><span style="font-weight: bold;"> </span>and are now only seeing even-numbered package options, there’s no need to worry. You can move to a plan with one additional decompiler (e.g., Expert-6 if you had 5) while paying the price of the lower plan (Expert-4).</span></span></span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">We encourage all existing customers to reach out for a quote or guidance on selecting the right package for their needs.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 16px; font-family: Verdana, Geneva, sans-serif; color: #000000;"><strong>Q:</strong> <span style="font-weight: bold;">I’ve heard there’s a new product called IDA Classroom that’s being offered free-of-charge. Is that correct?</span></span><br><span style="font-size: 16px; font-family: Verdana, Geneva, sans-serif; color: #000000;"><span style="font-weight: normal;"></span></span></p>
<p><span style="font-size: 16px; font-family: Verdana, Geneva, sans-serif; color: #000000;"><span style="font-weight: normal;">[Madame de Maintenon] </span>Absolutely! As part of our commitment to supporting the next generation of professionals, we’re now offering <strong>IDA with four decompilers completely free to universities, engineering schools, for-profit educational providers, and their students</strong>. The supported processor architectures are the ones most commonly used in education—x86 and ARM, both in 32- and 64-bit versions. </span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent;">We also encourage professional trainers to reach out to learn more about our new IDA Classroom offering, which they can benefit from. Additionally, we’re offering a 70% discount on IDA Pro subscriptions for academic institutions and researchers who require the full power of IDA Pro.&nbsp;</span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; font-size: 16px;">Finally, we’re committed to continuing to support students after they’ve completed their course that used IDA Classroom by offering <strong>an extension to their Classroom subscription for one year free-of-charge</strong>&nbsp;or at a 70% discount for those who want to use IDA Pro’s full capabilities.</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><strong>Q:</strong> <span style="font-weight: bold;">So, the free IDA Classroom subscriptions are now available to training companies as well, not just universities?</span></span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent; font-weight: normal;">[Madame de Maintenon]</span><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent;">&nbsp;Exactly! IDA Classroom is now </span><strong style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent;">free for professional trainers and their students</strong><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent;"> for an entire year. These trainers can include malware analysis instructors, penetration testing coaches, or organizations offering cybersecurity risk training. They don’t need to be affiliated with a specific university or engineering school. However, the courses must be open to the public—so technically, I should be able to enroll if I wanted to. Those offering private courses, like corporate training or military academies, are </span><span style="text-decoration: underline;">not</span><span style="color: #000000; font-family: Verdana, Geneva, sans-serif; background-color: transparent;"> eligible.</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><strong>Q:</strong> <strong>Why did Hex-Rays move to a subscription model?</strong></span><br><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"></span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">[Madame de Maintenon] In no particular order, here are a few reasons why we moved to a subscription model: </span><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><strong>a) </strong>The subscription model significantly reduces the upfront cost of using IDA, making it more accessible, </span><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><strong>b)</strong> While IDA Pro<strong> </strong>users will always have the option to use IDA in an air-gapped/offline environment, we're increasingly developing server-side services that depend on a robust hardware infrastructure. The new signature packs, available for download from our customer portal, are just one example—and many more are on the way. By adopting a subscription model, we can ensure continuous improvement and maintenance of these services without the limitations of a one-time purchase. Additionally, charging a one-off fee for our software while shouldering the ongoing costs of the back-end infrastructure is not sustainable in the long term, </span><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><strong>c)</strong> Regular subscription payments help us better forecast cash flow and avoid the challenges of chasing overdue payments - a real headache, honestly. It's very much like how employees appreciate the reliability of a regular salary.</span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">This is a change for us all and I know our users will understand. After all, we did eventually stop buying CDs and switched to paid music platforms.</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><strong>Q:</strong> <strong>So, the licensing change has nothing to do with reports of Hex-Rays having a new owner?</strong></span><br><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"></span></p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;">[Madame de Maintenon] I understand there are a few myths floating around about Hex-Rays’ ownership. For example, Wikipedia suggests that the private equity fund Smartfin now owns Hex-Rays, but that’s not accurate. <strong>Ilfak Guilfanov</strong>, our founder (and my creator), along with <strong>Hex-Rays employees</strong>, are the largest shareholders of our parent company. Smartfin is a minority shareholder, offering valuable expertise in innovation and growth. Their involvement has already enabled significant investments in new products and features, and we’re confident that our customers will soon see the benefits of these initiatives.</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><span style="font-weight: bold;">Q:</span> <strong>Speaking of new features, what’s your favorite in IDA 9.0?</strong></span></p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;">[Madame de Maintenon] I must say, I love everything that’s been added to IDA 9.0. But if I had to pick, unearthing x64 exceptions is an incredibly powerful feature. It’s the brainchild of Rolf Rolles, who worked closely with the team to make it a reality. Right now, it works on code compiled by MSVC, and I’m excited about its potential. There have also been some fantastic UI improvements thanks to Julian, our product owner, and some of our passionate developers. Features like the idalib headless library, the RISC-V and nanoMIPS decompilers, and the WASM disassembler were highly anticipated, so they weren’t a huge surprise for most customers. However, the FLIRT signature manager and the new signature packs were unexpected delights, and we’ve already received great feedback on them—especially seeing multi-core processing at work in IDA! We’ve also taken the first steps to improve the usability of our APIs and plug-ins, and there are many more exciting innovations coming in that area.</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;"><span style="font-weight: bold;">Q:</span> <strong>How did you become the face of IDA? Could you share the full story?</strong></span></p>
<p><span style="font-family: Verdana, Geneva, sans-serif; color: #000000;">[Madame de Maintenon] Of course. Initially, Ilfak named the product 'The Interactive Disassembler,' which quickly became known as IDA. Back in the 2000s, the team was searching for a logo and considered using Ada Lovelace's likeness, given that her name sounds similar to IDA and she was the first to describe the workings of a theoretical computer. However, they struggled to find a good image of Ada online. That’s when Pierre Vandevenne, the founder of Datarescue, suggested that I audition for the role. I like to think it was my elegance and wit that won them over. And that’s how I became the face of the product!</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><span style="font-weight: bold;">Q: </span><strong>There’s been quite a buzz around IDA 9.0, especially since it features a new logo that resembles a younger version of you. Could you tell us more about that?</strong></span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">[Madame de Maintenon] *smiling and blushing* Oh, I’m truly flattered! The new portrait was revealed alongside IDA 9.0, and it does capture a more youthful version of myself. It was actually a wonderful gift from our team working on AI-powered tools. They gathered an impressive collection of paintings of me and used them to recreate a 'younger me.' Of course, the portrait displayed at the Château de Maintenon will always remain IDA’s official product logo. But for IDA 9.0, let’s just say I’ve indulged in a bit of an 'anti-aging' treatment!</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;"><span style="font-weight: bold;">Q:</span> <strong>And finally, can you confirm the long-standing rumor—did you secretly marry Louis XIV, the King of France?</strong></span></p>
<p><span style="color: #000000; font-family: Verdana, Geneva, sans-serif;">[Madame de Maintenon] *smiling mysteriously* I’ll leave that to the endless rumors circulating online. The internet seems to have a way of always knowing what really happened, don’t you think?</span></p>
<div><i>&nbsp;</i></div></span>
</div></description>
<link>https://hex-rays.com/blog/mme-maintenon-ida9-subscriptions-more</link>
<guid isPermaLink="false">https://hex-rays.com/blog/mme-maintenon-ida9-subscriptions-more</guid>
<pubDate>Wed, 09 Oct 2024 06:31:26 GMT</pubDate>
<author>Hex-Rays SA</author>
</item>
<item>
<title>Discover IDA 9.0: Exciting New Features and Improvements</title>
<description><div class="post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p style="font-size: 16px;"><span style="font-weight: bold;"><span style="color: #1a1a1a;"><img src="https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=1044&amp;height=208&amp;name=unnamed-2-1.png" width="1044" height="208" loading="lazy" alt="unnamed-2-1" style="height: auto; max-width: 100%; width: 1044px;" srcset="https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=522&amp;height=104&amp;name=unnamed-2-1.png 522w, https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=1044&amp;height=208&amp;name=unnamed-2-1.png 1044w, https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=1566&amp;height=312&amp;name=unnamed-2-1.png 1566w, https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=2088&amp;height=416&amp;name=unnamed-2-1.png 2088w, https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=2610&amp;height=520&amp;name=unnamed-2-1.png 2610w, https://hex-rays.com/hs-fs/hubfs/unnamed-2-1.png?width=3132&amp;height=624&amp;name=unnamed-2-1.png 3132w" sizes="(max-width: 1044px) 100vw, 1044px" referrerpolicy="no-referrer"></span></span></p>
<p style="font-size: 16px;"><span style="font-weight: bold;"><span style="color: #1a1a1a;">IDA 9.0 is here</span></span><span style="color: #1a1a1a;"><span style="font-weight: normal;">, loaded w</span>ith a bunch of sleek improvements.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;">This release is amplified with new disassemblers and decompilers, such as the <span style="font-weight: bold;">RISC-V decompiler</span>, the disassembler <span style="font-weight: bold;">support of T-Head instruction set </span>for the XUANTIE-RV architecture, the <span style="font-weight: bold;">nanoMIPS decompiler</span> <span style="font-weight: bold;">and disassembler</span>, and the <span style="font-weight: bold;">Web Assembly (WASM) disassembler</span>.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;"></span><span style="color: #1a1a1a;">We’ve also added headless processing with <span style="font-weight: bold;">idalib</span>, allowing the use of C++ and Python APIs outside IDA to form standalone applications.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;">The time for analysis has been significantly reduced, thanks to our new <span style="font-weight: bold;">FLIRT Manager</span><span style="font-weight: normal;">,</span> which lists all available signatures and allows the user to apply them tentatively, and the thousands of new <span style="font-weight: bold;">FLIRT signatures </span>available as separate downloads.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a; background-color: transparent;">Additionally, a significant advancement has been made with the </span><span style="font-weight: bold;">C++ exceptions</span><span style="color: #1a1a1a; background-color: transparent;"> handling in the decompiler, giving the reverse engineers and malware analysts a powerful tool to unravel complex and obfuscated control flows.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;">Finally, we've got a range of <span style="font-weight: bold;">user interface refinements</span>.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;">For your convenience, we have highlighted the <span style="font-weight: bold;">key features</span>:</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<ul style="font-size: 16px;">
<li aria-level="1"><span style="color: #1a1a1a;">Headless processing with idalib</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">New RISC-V Decompiler and Disassembler Extensions</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">WASM Disassembler and File Format Loader</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">nanoMIPS support</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">C++ Exceptions Support in the Decompiler</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">IDAPython Improvements</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">No more IDA32</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">UI Improvements</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">FLIRT Updates</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">Metadata Descriptors for Plugins</span></li>
</ul>
<p style="font-size: 16px;"><!--more--></p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;">Take a look at the full list of enhancements <a href="https://docs.hex-rays.com/release-notes/9_0" rel="noopener" style="color: #1a1a1a;">https://docs.hex-rays.com/release-notes/9_0</a></span></p>
<p style="font-size: 16px;">&nbsp;</p>
<div style="display: block; padding: 20px; box-sizing: border-box; max-width: 100%; background-color: #fafafa; color: #000000; border: 1px solid #E4E4E4; border-radius: 16px; margin: 0 40px;">
<h3 style="font-size: 30px; text-align: center;"><span style="color: #1a1a1a;"><strong>Users with active support: Download IDA 9.0!</strong></span></h3>
<p style="font-size: 16px; text-align: center;"><span style="color: #1a1a1a;">If you hold an active support license for<strong> IDA Pro 8.4 or IDA Teams 8.4</strong>, you're eligible to use <strong>IDA Pro 9.0 </strong>under subscription terms at no cost until the end of your support period.</span></p>
<p style="font-size: 16px; text-align: center;">&nbsp;</p>
<hr style="margin: 10px 0; padding: 0;">
<p style="font-size: 16px; text-align: center;">&nbsp;</p>
<h3 style="font-size: 24px;"><span style="color: #1a1a1a;"><strong>Steps to Get Started:</strong></span></h3>
<ol style="font-size: 16px;">
<li aria-level="1"><span style="color: #1a1a1a;"><strong>Log in to the Customer Portal:</strong> Visit our new portal at <a href="http://my.hex-rays.com/" style="color: #1a1a1a;">my.hex-rays.com</a> using the email address linked to your license. Follow the on-screen prompts to access your account.</span></li>
<li aria-level="1"><span style="color: #1a1a1a;"><strong>Request your IDA 9 key</strong>: In the license section,<strong> Request Your IDA Pro 9.0 Trial License Key</strong>. Note that you will have from that moment 2 keys: one for <strong>IDA 8.4 </strong>and a second one for<strong> IDA 9.0</strong>.</span></li>
<li aria-level="1"><span style="color: #1a1a1a;"><strong>Download IDA Pro 9.0:</strong> In the customer portal download center section, download the IDA Pro 9.0 installer. <strong>NEW:</strong> you have the flexibility to switch the OS at any time as long as your license remains under active support.</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">Read the <a href="https://docs.hex-rays.com/release-notes/9_0" style="color: #1a1a1a;">release notes</a>. <strong>Important Updates to Be Aware Of:</strong></span>
<ul>
<li aria-level="2"><span style="color: #1a1a1a;">The IDB file format has been updated. <strong>Files saved with IDA 9.0 will not be accessible using IDA 8.4.</strong></span></li>
<li aria-level="2"><span style="color: #1a1a1a;">The C++ SDK and IDAPython API have been revised. You may need to update your plugins. Check the porting guide <a href="https://docs.hex-rays.com/developer-guide" style="color: #1a1a1a;">here</a>.</span></li>
<li aria-level="2"><span style="color: #1a1a1a;">If you are using <strong>IDA Teams 8.4</strong>, you must upgrade to <strong>IDA Pro 9.0</strong> and install the <strong>new Teams add-on</strong>, available on the portal <a href="http://my.hex-rays.com/" style="color: #1a1a1a;">my.hex-rays.com</a>.</span><br><span style="color: #1a1a1a;">For users of <strong>floating licenses</strong>, a new <strong>License server</strong> is required. The <strong>Flexera server</strong> from IDA 8.4 will no longer work. The updated license server can also be downloaded via the portal <a href="http://my.hex-rays.com/" style="color: #1a1a1a;">my.hex-rays.com</a>.</span></li>
</ul>
</li>
<li aria-level="2"><span style="color: #1a1a1a;"><strong>Install IDA Pro 9.0</strong>, agree to the updated <a href="https://hex-rays.com/eula" style="color: #1a1a1a;"><strong>EULA</strong></a>, and start exploring the latest features and enhancements!</span></li>
<li aria-level="2"><span style="color: #1a1a1a;">If you experience any issues at any step, please don’t hesitate to contact our support team at <strong>support@hex-rays.com</strong>. We're here to assist you!</span></li>
</ol>
<h3 style="font-size: 24px;"><span style="color: #1a1a1a;"><strong style="background-color: transparent;">What Happens After Your Support Period Ends?</strong></span></h3>
<ul style="font-size: 16px;">
<li aria-level="1"><span style="color: #1a1a1a;">You can <strong>subscribe </strong>for continued access to <strong>IDA 9.x updates</strong> by contacting us at <strong>sales@hex-rays.com</strong>, OR</span></li>
<li aria-level="1"><span style="color: #1a1a1a;">If you choose not to subscribe, you can revert to <strong>IDA Pro 8.4</strong> under perpetual license terms. While <strong>IDA Pro 8.4 </strong>will still receive critical bug fixes during your active support period, most new breakthrough features will be available only in the <strong>IDA Pro 9.x branch</strong>.</span></li>
</ul>
<p style="font-size: 16px;"><span style="background-color: transparent; color: #1a1a1a;">&nbsp;</span></p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;"><strong>IMPORTANT</strong>: If you do not subscribe within <strong>1 month </strong>after your active support period ends, <strong>IDA Pro 9.0</strong> will no longer allow you to save your work.</span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="color: #1a1a1a;"><span style="background-color: transparent;"></span><strong>Are you looking to subscribe to one of our new products before your current support period ends?</strong></span></p>
<p style="font-size: 16px;">&nbsp;</p>
<p style="font-size: 16px;"><span style="background-color: transparent; color: #1a1a1a;">Feel free to contact us at <a href="mailto:sales@hex-rays.com" rel="noopener" style="color: #1a1a1a;"><strong>sales@hex-rays.com</strong></a> for a personalized quote and detailed information, including our updated terms and conditions. We're committed to ensuring a seamless transition to our latest product offerings and subscription plans.</span></p>
</div></span>
</div></description>
<link>https://hex-rays.com/blog/discover-ida-9.0-exciting-new-features-and-improvements</link>
<guid isPermaLink="false">https://hex-rays.com/blog/discover-ida-9.0-exciting-new-features-and-improvements</guid>
<pubDate>Tue, 01 Oct 2024 06:58:24 GMT</pubDate>
<author>Alex Petrov</author>
</item>
<item>
<title>Unveiling IDA Pro 9.0: The New nanoMIPS Disassembler and Decompiler</title>
<description><div class="post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p dir="ltr">We know many of you needed<span>&nbsp;</span><strong>nanoMIPS</strong><span>&nbsp;</span>support in IDA. In fact, there is support for MIPS, and even some plugins do a decent job of disassembling and decompiling nanoMIPS, but…it was pretty clear that we should have it in IDA by default. Before we get to the point of this blog post, some of you might not be familiar with that architecture, and therefore, we will just briefly brush up on what nanoMIPS is and why there is so much fuss about having it in IDA.</p>
<!--more--><p dir="ltr">nanoMIPS is a variant of the MIPS architecture designed for embedded devices. Although nanoMIPS and MIPS have many similarities, the nano version uses a unique instruction encoding that compresses operations into smaller memory footprints, which increases its efficiency in constrained environments but also introduces complexity for reverse engineers.</p>
<p dir="ltr">Here comes the great news!<span>&nbsp;</span><strong>The MIPS disassembler and decompiler got added support for nanoMIPS instructions</strong>. They will be<span>&nbsp;</span><strong>included in the upcoming IDA 9.0 release</strong>. As you probably know (or don’t), firmware compiled for nanoMIPS often ships in md1rom format, which is why<span>&nbsp;</span><strong>we also added a md1rom file loader</strong><span>&nbsp;</span>to IDA (which includes parsing and applying of debug symbols, if available). The nanoMIPS support is included in the classic MIPS (HEXMIPS) decompiler, so if you already have the MIPS decompiler, you won’t need an additional decompiler.</p>
<p dir="ltr">Enough talking. Let’s look at some screenshots and see how IDA 9.0 deals with nanoMIPS:</p>
<p dir="ltr"><img src="https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=815&amp;height=846&amp;name=nanoMIPS-1.png" width="815" height="846" loading="lazy" alt="nanoMIPS-1" style="height: auto; max-width: 100%; width: 815px;" srcset="https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=408&amp;height=423&amp;name=nanoMIPS-1.png 408w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=815&amp;height=846&amp;name=nanoMIPS-1.png 815w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=1223&amp;height=1269&amp;name=nanoMIPS-1.png 1223w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=1630&amp;height=1692&amp;name=nanoMIPS-1.png 1630w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=2038&amp;height=2115&amp;name=nanoMIPS-1.png 2038w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-1.png?width=2445&amp;height=2538&amp;name=nanoMIPS-1.png 2445w" sizes="(max-width: 815px) 100vw, 815px" referrerpolicy="no-referrer"></p>
<p dir="ltr"><img src="https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=1600&amp;height=1009&amp;name=nanoMIPS-2.png" width="1600" height="1009" loading="lazy" alt="nanoMIPS-2" style="height: auto; max-width: 100%; width: 1600px;" srcset="https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=800&amp;height=505&amp;name=nanoMIPS-2.png 800w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=1600&amp;height=1009&amp;name=nanoMIPS-2.png 1600w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=2400&amp;height=1514&amp;name=nanoMIPS-2.png 2400w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=3200&amp;height=2018&amp;name=nanoMIPS-2.png 3200w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=4000&amp;height=2523&amp;name=nanoMIPS-2.png 4000w, https://hex-rays.com/hs-fs/hubfs/nanoMIPS-2.png?width=4800&amp;height=3027&amp;name=nanoMIPS-2.png 4800w" sizes="(max-width: 1600px) 100vw, 1600px" referrerpolicy="no-referrer"></p>
<p><span>This enhancement, introduced with the&nbsp;</span><strong>September 30th release of IDA Pro 9.0</strong><span>, sets the stage for even more sophisticated features in the future as IDA Pro continues to evolve alongside the complexity of modern software development.</span></p></span>
</div></description>
<link>https://hex-rays.com/blog/unveiling-ida-pro-9-0-the-new-nanomips-disassembler-and-decompiler</link>
<guid isPermaLink="false">https://hex-rays.com/blog/unveiling-ida-pro-9-0-the-new-nanomips-disassembler-and-decompiler</guid>
<pubDate>Thu, 26 Sep 2024 15:45:37 GMT</pubDate>
<author>Alex Petrov</author>
</item>
<item>
<title>Unveiling IDA Pro 9.0: Introducing the FLIRT Manager And Thousands Of New Signatures</title>
<description><div class="post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p><strong>FLIRT</strong><span>&nbsp;</span>technology has been around for quite some time. It was first introduced in IDA 3.6 in 1996, and since then, it has saved analysts long hours of manual work. We believe most of you already know what FLIRT is, but we’ll say a few words for those just starting with IDA.<span>&nbsp;</span><strong>The Fast Library Identification and Recognition Technology (FLIRT)</strong><span>&nbsp;</span>allows IDA to recognize standard library functions generated by supported compilers. It dramatically improves the disassembly listing by making it more readable.&nbsp;</p>
<!--more--><p>You might have noticed that we recently incorporated a convenient tool for generating FLIRT signatures from a current database –<span>&nbsp;</span><a href="https://hex-rays.com/blog/an-overview-of-the-makesig-plugin/">the makesig plugin</a>. With this extension, users can migrate a list of functions that had already been reverse-engineered and exported as a signature file into the current binary. This tool was just the beginning of more exciting developments.&nbsp;</p>
<p><strong>In IDA 9.0,</strong><span>&nbsp;</span>we’ve launched a new tool called<span>&nbsp;</span><strong>FLIRT Manager</strong>. We will discuss this feature in a separate blog post, but in a few words, it lists all available signatures and allows the user to apply them tentatively (see the screenshots below). Perhaps one of the most valuable features of the FLIRT Manager is the ability to perform a multi-core analysis. Within the blink of an eye, you can analyze thousands of signatures if idalib is set up correctly. We also say goodbye to the singular double-clicking of all signature suggestions. Just bulk-select and the FLIRT Manager will do the hard part!&nbsp;</p>
<p><img src="https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=1280&amp;height=763&amp;name=flirt-manager-1.jpg" width="1280" height="763" loading="lazy" alt="flirt-manager-1" style="height: auto; max-width: 100%; width: 1280px;" srcset="https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=640&amp;height=382&amp;name=flirt-manager-1.jpg 640w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=1280&amp;height=763&amp;name=flirt-manager-1.jpg 1280w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=1920&amp;height=1145&amp;name=flirt-manager-1.jpg 1920w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=2560&amp;height=1526&amp;name=flirt-manager-1.jpg 2560w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=3200&amp;height=1908&amp;name=flirt-manager-1.jpg 3200w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-1.jpg?width=3840&amp;height=2289&amp;name=flirt-manager-1.jpg 3840w" sizes="(max-width: 1280px) 100vw, 1280px" referrerpolicy="no-referrer"></p>
<p><img src="https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=1280&amp;height=764&amp;name=flirt-manager-2.jpg" width="1280" height="764" loading="lazy" alt="flirt-manager-2" style="height: auto; max-width: 100%; width: 1280px;" srcset="https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=640&amp;height=382&amp;name=flirt-manager-2.jpg 640w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=1280&amp;height=764&amp;name=flirt-manager-2.jpg 1280w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=1920&amp;height=1146&amp;name=flirt-manager-2.jpg 1920w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=2560&amp;height=1528&amp;name=flirt-manager-2.jpg 2560w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=3200&amp;height=1910&amp;name=flirt-manager-2.jpg 3200w, https://hex-rays.com/hs-fs/hubfs/flirt-manager-2.jpg?width=3840&amp;height=2292&amp;name=flirt-manager-2.jpg 3840w" sizes="(max-width: 1280px) 100vw, 1280px" referrerpolicy="no-referrer"></p>
<p><span>On top of that, we’ve supercharged FLIRT by adding thousands of signatures as separate downloads! You can decide which one to use for your project and load it into IDA. Now, take a moment to explore the signatures we’ve built in the new release:</span></p>
<ul>
<li><span>Golang:</span>
<ul>
<li><span>Versions: stable versions from 1.10.0 to 1.23</span></li>
<li><span>Windows: x86, x64, arm, arm64</span></li>
<li><span>Linux: i386, amd64, arm, arm64</span></li>
<li><span>Darwin: amd64, arm64</span></li>
</ul>
</li>
<li><span>C/C++</span>
<ul>
<li><span>Windows (MSVC):</span>
<ul>
<li><span>Architectures: arm, arm64, i386, amd64</span></li>
<li><span>Packages: ATL, CTL, MFC, Windows SDK 10, Windows SDK 11</span></li>
</ul>
</li>
<li><span>Linux:</span>
<ul>
<li><span>Distribution: Ubuntu &amp; Debian</span></li>
<li><span>Architectures: i386, amd64, arm64, armhf, armel, arm, s390x, mips64el, mipsel, mips, ppc64el</span></li>
<li><span>Packages: libc6, libselinux1, libpcre2, libidn2, libssl, zlib1g, lib32z1, libunistring, libcurl4-gnutls, libcurl4-nss, libcurl4-openssl, libnghttp2, libidn2, librtmp, libssh, libssh-gcrypt, libpsl, libldap, libzstd, libbrotli, libgnutls28, nettle, libgmp, comerr, libsasl2, libbrotli, libtasn1-6, libkeyutils, libffi, uuid, libprotobuf, heimdal-multidev, musl, libplib, libsdl1.2-bundle (libsdl-console, libsdl-sge, libsdl1.2, libsdl-ocaml, libsdl-image1.2, libsdl-kitchensink, libsdl-mixer1.2, libsdl-net1.2, libsdl-sound1.2, libsdl-ttf2.0, libsdl1.2-compat, libsdl-gfx1.2, libsdl-pango), libsdl2-bundle (libsdl2, libsdl2-gfx, libsdl2-image, libsdl2-mixer, libsdl2-net, libsdl2-ttf)</span></li>
</ul>
</li>
</ul>
</li>
<li><span>Rust</span>
<ul>
<li><span>Versions 1.77 to 1.81</span></li>
<li><span>Windows,&nbsp;</span></li>
<li><span>Linux</span></li>
<li><span>macOS</span>
<ul>
<li><span>Architectures: arm64, arm, x86, x86-64</span></li>
<li><span>Operating Systems: Linux, Windows, Macos</span></li>
<li><span>Compilers: GCC, LLVM, MSVC</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>This massive improvement means you can now tackle complex binaries faster than before and allows you to save time by focusing on the unknown parts of the code. Perhaps, one of the greatest enhancements in IDA 9.0 is that<span>&nbsp;</span><strong>we are going to maintain and update the databases with signatures</strong>. Yes, you will not have to worry about that. The signature updates happen automatically whenever the upstream program changes. This means<span>&nbsp;</span><strong>your signatures stay up-to-date without manual intervention</strong>, ensuring you’re always working with the latest, most accurate information.</p></span>
</div></description>
<link>https://hex-rays.com/blog/unveiling-ida-pro-9-0-introducing-the-flirt-manager-and-thousands-of-new-signatures</link>
<guid isPermaLink="false">https://hex-rays.com/blog/unveiling-ida-pro-9-0-introducing-the-flirt-manager-and-thousands-of-new-signatures</guid>
<pubDate>Mon, 23 Sep 2024 14:00:00 GMT</pubDate>
<author>Alex Petrov</author>
</item>
<item>
<title>Unveiling IDA Pro 9.0: The New RISC-V Decompiler and Enhanced Disassembler Extensions</title>
<description><div class="post-body">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p>We’ve been asked numerous times the question – “<em>When will IDA support a RISC-V decompilation?</em>”. We are delighted to say that IDA 9.0 will include<span>&nbsp;</span><strong>RISC-V Decompiler</strong>, and on top of that, the disassembler will support the<strong><span>&nbsp;</span>T-Head instruction set for the XUANTIE-RV architecture</strong>. Why is it so important to have RISC-V in IDA? The answer is simple – because it is becoming more and more popular. In fact, RISC-V has established itself as a revolutionary architecture, offering an open-source, modular design built on the principles of reduced instruction set computing (RISC). Unlike some proprietary architectures, RISC-V is free to use, modify, and implement, making it a popular choice for hardware designers and engineers looking for flexibility. Its streamlined instruction set and load-store architecture ensure simplicity and efficiency, while optional extensions allow customization based on specific application needs. For reverse engineers, RISC-V presents a unique opportunity. With a fixed 32-bit instruction base, 31 general-purpose registers, and a program counter, it offers a clean and predictable structure for analysis.</p>
<!--more--><p>It is also important to highlight that RISC-V offers a robust Linux port, supporting both RV32 and RV64 architectures, allowing seamless integration with open-source development environments. This port includes essential components such as the Linux kernel, U-Boot bootloader, and GCC/LLVM toolchains, ensuring full system functionality on RISC-V hardware.</p>
<p>There are many occasions when you would need to analyze such a binary:</p>
<ul>
<li>Security Audits: Finding vulnerabilities in RISC-V processors.</li>
<li>IP Theft Investigation: Checking for unauthorized use of designs.</li>
<li>Compatibility Checks: Ensuring hardware works with specific software.</li>
<li>Performance Tuning: Optimizing the processor for custom applications.</li>
<li>Hardware Modification: Modding processors for enhanced or altered functionality.</li>
</ul>
<p>Now, take a moment to explore the examples below. With the RISC-V decompiler, introduced in IDA 9.0, the analysis process is much more streamlined, intuitive, and accurate.</p>
<h5><span style="color: #425b76;">Disassembled code containing T-Head instructions</span></h5>
<pre><span>.text:00000000000029D6<br>.text:00000000000029D6 </span><span># =============== S U B R O U T I N E =======================================<br></span><span>.text:00000000000029D6<br>.text:00000000000029D6<br>.text:00000000000029D6 </span><span># __int64 __fastcall crc32_z(int, char *, unsigned __int64)<br></span><span>.text:00000000000029D6 </span><span># public </span><span>crc32_z<br></span><span>.text:00000000000029D6 </span><span>crc32_z</span><span>: </span><span># CODE XREF: j_crc32_z+8↑p<br></span><span>.text:00000000000029D6 </span><span># DATA XREF: LOAD:0000000000000A50↑o ...<br></span><span>.text:00000000000029D6 </span><span>beqz </span><span>a1</span><span>, </span><span>loc_2CCA<br></span><span>.text:00000000000029DA </span><span>sext.w </span><span>a0</span><span>, </span><span>a0<br></span><span>.text:00000000000029DC </span><span>not </span><span>a0</span><span>, </span><span>a0<br></span><span>.text:00000000000029E0 </span><span>la </span><span>a4</span><span>, </span><span>dword_A850<br></span><span>.text:00000000000029E8<br>.text:00000000000029E8 </span><span>loc_29E8</span><span>: </span><span># CODE XREF: crc32_z+AE↓j<br></span><span>.text:00000000000029E8 </span><span>beqz </span><span>a2</span><span>, </span><span>loc_2A62<br></span><span>.text:00000000000029EA </span><span>andi </span><span>a5</span><span>, </span><span>a1</span><span>, </span><span>3<br></span><span>.text:00000000000029EE </span><span>bnez </span><span>a5</span><span>, </span><span>loc_2A6C<br></span><span>.text:00000000000029F0 </span><span>mv </span><span>a4</span><span>, </span><span>a1<br></span><span>.text:00000000000029F2 </span><span>add </span><span>a7</span><span>, </span><span>a1</span><span>, </span><span>a2<br></span><span>.text:00000000000029F6 </span><span>li </span><span>a6</span><span>, </span><span>1Fh<br></span><span>.text:00000000000029F8 </span><span>la </span><span>a5</span><span>, </span><span>dword_A850<br></span><span>.text:0000000000002A00<br>.text:0000000000002A00 </span><span>loc_2A00</span><span>: </span><span># CODE XREF: crc32_z+2B0↓j<br></span><span>.text:0000000000002A00 </span><span>sub </span><span>a3</span><span>, </span><span>a7</span><span>, </span><span>a4<br></span><span>.text:0000000000002A04 </span><span>bltu </span><span>a6</span><span>, </span><span>a3</span><span>, </span><span>loc_2A86<br></span><span>.text:0000000000002A08 </span><span>srli </span><span>a5</span><span>, </span><span>a2</span><span>, </span><span>5<br></span><span>.text:0000000000002A0C </span><span>slli </span><span>a4</span><span>, </span><span>a5</span><span>, </span><span>5<br></span><span>.text:0000000000002A10 </span><span>add </span><span>a1</span><span>, </span><span>a1</span><span>, </span><span>a4<br></span><span>.text:0000000000002A12 </span><span>li </span><span>a4</span><span>, -</span><span>20h<br></span><span>.text:0000000000002A14 </span><span>th.mula </span><span>a2</span><span>, </span><span>a5</span><span>, </span><span>a4<br></span><span>.text:0000000000002A18 </span><span>li </span><span>a7</span><span>, </span><span>3<br></span><span>.text:0000000000002A1A </span><span>li </span><span>a4</span><span>, </span><span>0<br></span><span>.text:0000000000002A1C </span><span>la </span><span>a3</span><span>, </span><span>dword_A850<br></span><span>.text:0000000000002A24<br>.text:0000000000002A24 </span><span>loc_2A24</span><span>: </span><span># CODE XREF: crc32_z+2F2↓j<br></span><span>.text:0000000000002A24 </span><span>sub </span><span>a5</span><span>, </span><span>a2</span><span>, </span><span>a4<br></span><span>.text:0000000000002A28 </span><span>bltu </span><span>a7</span><span>, </span><span>a5</span><span>, </span><span>loc_2C88<br></span><span>.text:0000000000002A2C </span><span>srli </span><span>a5</span><span>, </span><span>a2</span><span>, </span><span>2<br></span><span>.text:0000000000002A30 </span><span>li </span><span>a4</span><span>, -</span><span>4<br></span><span>.text:0000000000002A32 </span><span>th.mula </span><span>a2</span><span>, </span><span>a5</span><span>, </span><span>a4<br></span><span>.text:0000000000002A36 </span><span>th.addsl </span><span>a1</span><span>, </span><span>a1</span><span>, </span><span>a5</span><span>, </span><span>2<br></span><span>.text:0000000000002A3A </span><span>beqz </span><span>a2</span><span>, </span><span>loc_2A62<br></span><span>.text:0000000000002A3C </span><span>li </span><span>a4</span><span>, </span><span>0<br></span><span>.text:0000000000002A3E </span><span>la </span><span>a3</span><span>, </span><span>dword_A850<br></span><span>.text:0000000000002A46<br>.text:0000000000002A46 </span><span>loc_2A46</span><span>: </span><span># CODE XREF: crc32_z+88↓j<br></span><span>.text:0000000000002A46 </span><span>th.lrbu </span><span>a5</span><span>, </span><span>a1</span><span>, </span><span>a4</span><span>, </span><span>0<br></span><span>.text:0000000000002A4A </span><span>addi </span><span>a4</span><span>, </span><span>a4</span><span>, </span><span>1<br></span><span>.text:0000000000002A4C </span><span>xor </span><span>a5</span><span>, </span><span>a5</span><span>, </span><span>a0<br></span><span>.text:0000000000002A4E </span><span>andi </span><span>a5</span><span>, </span><span>a5</span><span>, </span><span>0FFh<br></span><span>.text:0000000000002A52 </span><span>th.lurw </span><span>a5</span><span>, </span><span>a3</span><span>, </span><span>a5</span><span>, </span><span>2<br></span><span>.text:0000000000002A56 </span><span>srliw </span><span>a0</span><span>, </span><span>a0</span><span>, </span><span>8<br></span><span>.text:0000000000002A5A </span><span>xor </span><span>a0</span><span>, &l |
artefaritaKuniklo
pushed a commit
to artefaritaKuniklo/RSSHub
that referenced
this pull request
Dec 13, 2024
This commit refactors the data acquisition method in the hex-rays route. It adds type annotations for the Data, DataItem, and Route types. It also imports the Context type from the hono library. The maintainers list is updated to include Mas0n. The handler function now takes a Context parameter and returns a Promise<Data>. The link to fetch data is updated to 'https://hex-rays.com/blog/'. The parsing logic for the list of articles is modified to use the correct selectors. The category and description properties of each article are updated to match the new HTML structure. The image property is added to the returned data object.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit refactors the data acquisition method in the hex-rays route. It adds type annotations for the Data, DataItem, and Route types. It also imports the Context type from the hono library. The maintainers list is updated to include Mas0n. The handler function now takes a Context parameter and returns a Promise. The link to fetch data is updated to 'https://hex-rays.com/blog/'. The parsing logic for the list of articles is modified to use the correct selectors. The category and description properties of each article are updated to match the new HTML structure. The image property is added to the returned data object.
Involved Issue / 该 PR 相关 Issue
Close #
Example for the Proposed Route(s) / 路由地址示例
New RSS Route Checklist / 新 RSS 路由检查表
Puppeteer
Note / 说明