Stripping Away Malware’s Armor

執筆者
Brian Prince
Brian Prince
Published: Feb 17, 2008
Updated: Feb 2, 2021
2 minute read
eWeek のコンテンツおよび製品のおすすめは、編集上の独立性を保っています。パートナーへのリンクをクリックすると、当社が報酬を得る場合があります。 詳細を見る

Getting around the defense mechanisms that malware writers erect isn’t easy. From packers to run-time obfuscators, software-armoring techniques create problems for reverse engineers and security analysts.

Security pros Danny Quist and Val Smith, of Offensive Computing, have a solution-Saffron, a stealthy debugging platform they are developing. Having first presented the tool at the 2007 Black Hat conference in Las Vegas, the two demonstrated an updated version Feb. 17 at ShmooCon 4 in Washington, D.C.

The pair was able to successfully defeat two well-known packers, TeLock and Vmprotect, as well as a custom packer presented to them afterward by two members of the audience.

“Danny and I do a lot of malware analysis, and manual analysis can take hours,” said Smith, chief technology officer of Offensive Computing. “We really want to be able to analyze most of the files rapidly, but to do that you have to be able to deal with the fact that most malware is obfuscated, it’s encrypted, coded, compressed, so that you can’t understand what’s going on.”

Security risks are very real in virtual worlds. Read more here.

Saffron uses page faults to assist in the unpacking process. A page fault is an interrupt that occurs when a program requests data that is not currently in real memory. Memory management uses page faults to enforce a separation of memory from kernel space and user space, Quist said.

“Basically you don’t want anything running in user mode to modify kernel memory,” he said. “This is implemented with something called a supervisor bit. That’s something that lets the hardware know that a currently running program should not access certain memory.

“We change this method slightly,” Quist continued. “What we do is to mark all of the program’s memory with this supervisor bit so that it always creates a page fault. Once we get this page fault we check to see if it’s our program. If it is, we log it and allow it through. When the OS gets a page fault you can see whether it was trying to read, write or execute. So we mark all the writes to memory, then watch for an execute in that memory. If we see an execute, then that’s our trigger for a candidate OEP [original entry point] and we dump the memory.”

Advertisement

Saffron uses a hybrid memory scanning and tagging mechanism to identify memory areas, as well as the dynamic run-time tracing capabilities of Intel’s PIN tool to monitor the flow of executables. What makes it faster than other unpacking utilities, Quist said, is that it’s an automatable process and it runs entirely on hardware.

“Since the CPU tells us when this occurs, we can largely take a hands-off approach,” he said. “Other methods involve emulating a running CPU or setting debuggers, which makes for slow unpacking.”

The tool relies on stealth, hiding from the malware to avoid being counteracted, Smith said.

“Basically, it’s an arms race,” Quist said.

Brian Prince

Brian Prince

Content Writer
eWeek Logo

eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site's focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

TechnologyAdvice が所有・運営しています。 © 2026 TechnologyAdvice. 無断転載を禁じます

広告主に関する開示:このサイトに掲載されている製品の一部は、TechnologyAdvice が報酬を受け取っている企業のものです。この報酬は、製品がこのサイトのどこにどのように表示されるか(表示される順序など)に影響する場合があります。TechnologyAdvice は、市場で入手可能なすべての企業やすべての種類の製品を掲載しているわけではありません。