Chengbin Pang

dblp:223/6697 · DBLP profile ↗
← Back
11ranked-venue papers
6as first author
9since 2021 · last 2023
0000-0002-7439-2364ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 9 · 5 first-author · 7 since 2021Systems, architecture and hardware · 2 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 2 · 1 first-author · 2 since 2021
YearPublicationVenuePosition
2023 Profile-guided System Optimizations for Accelerated Greybox Fuzzing
abstract
Greybox fuzzing is a highly popular option for security testing, incentivizing tremendous efforts to improve its performance. Prior research has brought many algorithmic advancements, leading to substantial performance growth. However, less attention has been paid to the system-level designs of greybox fuzzing tools, despite the high impacts of such designs on fuzzing throughput.
Yunhang Zhang, Chengbin Pang, Stefan Nagy, Jun Xu 0024
CCS2
2023 OCFI: Make Function Entry Identification Hard Again
abstract
Function entry identification is a crucial yet challenging task for binary disassemblers that has been the focus of research in the past decades. However, recent researches show that call frame information (CFI) provides accurate and almost complete function entries. With the aid of CFI, disassemblers have significant improvements in function entry detection. CFI is specifically designed for efficient stack unwinding, and every function has corresponding CFI in x64 and aarch64 architectures. Nevertheless, not every function and instruction unwinds the stack at runtime, and this observation has led to the development of techniques such as obfuscation to complicate function detection by disassemblers.
Chengbin Pang, Tiantai Zhang, Xuelan Xu, Linzhang Wang, Bing Mao 0001
ISSTA1
2023 Generation-based fuzzing? Don't build a new generator, reuse!
Chengbin Pang, Hongbin Liu 0005, Neil Zhenqiang Gong, Bing Mao 0001, Jun Xu 0024
Comput. Secur.1
2022 Ground Truth for Binary Disassembly is Not Easy
Chengbin Pang, Tiantai Zhang, Ruotong Yu, Bing Mao 0001, Jun Xu 0024
USENIX Security Symposium1
2022 Debloating Address Sanitizer
Yuchen Zhang 0006, Chengbin Pang, Georgios Portokalidis, Nikos Triandopoulos, Jun Xu 0024
USENIX Security Symposium2
2021 Proving LTL Properties of Bitvector Programs and Decompiled Binaries
Yuandong Cyrus Liu, Chengbin Pang, Daniel Dietsch, Eric Koskinen, Ton Chanh Le, Georgios Portokalidis, Jun Xu 0024
APLAS2
2021 Towards Optimal Use of Exception Handling Information for Function Detection
abstract
Function entry detection is critical for security of binary code. Conventional methods heavily rely on patterns, inevitably missing true functions and introducing errors. Recently, call frames have been used in exception-handling for function start detection. However, existing methods have two problems. First, they combine call frames with heuristic-based approaches, which often brings error and uncertain benefits. Second, they trust the fidelity of call frames, without handling the errors that are introduced by call frames. In this paper, we first study the coverage and accuracy of existing approaches in detecting function starts using call frames. We found that although recursive disassembly with call frames can maximize coverage, using extra heuristic-based approaches does not improve coverage and actually hurts accuracy. Second, we unveil call-frame errors and develop the first approach to fix them, making their use more reliable.
Chengbin Pang, Ruotong Yu, Dongpeng Xu 0001, Eric Koskinen, Georgios Portokalidis, Jun Xu 0024
DSN1
2021 Facilitating Parallel Fuzzing with Mutually-Exclusive Task Distribution
Yuchen Zhang 0006, Chengbin Pang, Nikolaos Triandopoulos, Jun Xu 0024
SecureComm (2)3
2021 SoK: All You Ever Wanted to Know About x86/x64 Binary Disassembly But Were Afraid to Ask
abstract
Disassembly of binary code is hard, but necessary for improving the security of binary software. Over the past few decades, research in binary disassembly has produced many tools and frameworks, which have been made available to researchers and security professionals. These tools employ a variety of strategies that grant them different characteristics. The lack of systematization, however, impedes new research in the area and makes selecting the right tool hard, as we do not understand the strengths and weaknesses of existing tools. In this paper, we systematize binary disassembly through the study of nine popular, open-source tools. We couple the manual examination of their code bases with the most comprehensive experimental evaluation (thus far) using 3,788 binaries. Our study yields a comprehensive description and organization of strategies for disassembly, classifying them as either algorithm or else heuristic. Meanwhile, we measure and report the impact of individual algorithms on the results of each tool. We find that while principled algorithms are used by all tools, they still heavily rely on heuristics to increase code coverage. Depending on the heuristics used, different coverage-vs-correctness trade-offs come in play, leading to tools with different strengths and weaknesses. We envision that these findings will help users pick the right tool and assist researchers in improving binary disassembly.
Chengbin Pang, Ruotong Yu, Yaohui Chen 0001, Eric Koskinen, Georgios Portokalidis, Bing Mao 0001, Jun Xu 0024
SP1
2018 Mapping to Bits: Efficiently Detecting Type Confusion Errors
abstract
The features of modularity and inheritance in C++ facilitate the developers' usage, but also give rise to the problem of type confusion. As an ancestor class may have a different data layout from its descendant class, a dangerous downcasting operation from the ancestor to its descendant can lead to a critical attack, such as control flow hijacking, out-of-bounds access to neighbor memory area, etc. As reported in CVE, such vulnerabilities have been found in various common-used software, including Google Chrome, Firefox and Adobe Flash Player, and have a trend of increase in recent years. The urgency of addressing type confusion problems quickens the pace of researchers coming to corresponding solutions. However, the existing works either handle the problem partially, or suffer from the high performance and memory overhead, especially to the large-scale projects.
Chengbin Pang, Yunlan Du, Bing Mao 0001, Shanqing Guo
ACSAC1
2018 To Detect Stack Buffer Overflow with Polymorphic Canaries
abstract
Stack Smashing Protection (SSP) is a simple and highly efficient technique widely used in practice as the front line defense against stack buffer overflow attacks. Unfortunately, SSP is known to be vulnerable to the so-called byte-by-byte attack. Although several remedy schemes are proposed in the recent literature, their security is achieved at the price of practicality, because their complex logics ruin SSP's simplicity and high-efficiency. In this paper, we present an elegant solution named as Polymorphic SSP (P-SSP) that attains the same security without sacrificing SSP's strengths. We also propose three extensions of the basic scheme for better compatibility, stronger security, and local variable protection, respectively. We have implemented both a compiler plugin and a binary instrumentation tool for deploying P-SSP. Their respective runtime overheads are only 0.24% and 1.01%. We have also experimented with our extensions and compared their pros and cons with the basic scheme.
Xuhua Ding, Chengbin Pang, Bing Mao 0001
DSN3