- Software Engineering Research
- Software Testing and Debugging Techniques
- Advanced Malware Detection Techniques
- Software Reliability and Analysis Research
- Parallel Computing and Optimization Techniques
- Reservoir Engineering and Simulation Methods
- Security and Verification in Computing
- Adversarial Robustness in Machine Learning
- Blockchain Technology Applications and Security
- Advanced SAR Imaging Techniques
- Cybercrime and Law Enforcement Studies
- Software System Performance and Reliability
- Image Processing Techniques and Applications
- Architecture and Cultural Influences
- Synthetic Aperture Radar (SAR) Applications and Techniques
- Urban Design and Spatial Analysis
- Place Attachment and Urban Studies
- Vehicle License Plate Recognition
- Handwritten Text Recognition Techniques
- Web Application Security Vulnerabilities
- Hydraulic Fracturing and Reservoir Analysis
University of Waterloo
2021-2025
Hong Kong University of Science and Technology
2023-2024
University of Hong Kong
2023-2024
Government of Canada
2023-2024
Qiqihar University
2023
Security of smart contracts has attracted increasing attention in recent years. Many researchers have devoted themselves to devising testing tools for vulnerability detection. Each published tool demonstrated its effectiveness through a series evaluations on their own experimental scenarios. However, the inconsistency evaluation settings such as different data sets or performance metrics, may result biased conclusion.
This paper proposes LATTE, the first static binary taint analysis that is powered by a large language model (LLM). LATTE superior to state of art (e.g., Emtaint, Arbiter, Karonte) in three aspects. First, fully automated while prior analyzers need rely on human expertise manually customize propagation rules and vulnerability inspection rules. Second, significantly effective detection, demonstrated our comprehensive evaluations. For example, has found 37 new bugs real-world firmware, which...
Program reduction has demonstrated its usefulness in facilitating debugging language implementations practice, by minimizing bug-triggering programs. There are two categories of program reducers: language-agnostic reducers (AGRs) and language-specific (SPRs). AGRs, such as HDD Perses, generally applicable to various languages; SPRs specifically designed for one with meticulous thoughts significant engineering efforts, e.g., C-Reduce reducing C/C++ is an NP-complete problem: finding the...
Attacks on smart contracts have caused considerable losses to digital assets. Many techniques based symbolic execution, fuzzing, and static analysis are used detect contract vulnerabilities. Most of the current analyzers only consider vulnerability detection intra-contract scenarios. However, Ethereum usually interact with others by calling their functions. A bug hidden in a path that depends information from external calls is defined as an inter-contract vulnerability. Failure deal this...
Compilation Consistency Modulo Debug Information (CCMD) is an essential compiler property that a production should support: the emit same machine code regardless of enabling debug information. CCMD vital to developers' experiences with debugging binary containing no To such binary, developers need build another flags and enable Without CCMD, in latter will be different, which can confuse debugger, hide bug, or even cause miscompilation (as GCC once did Linux Kernel).
Program reduction is a highly practical, widely demanded technique to help debug language tools, such as compilers, interpreters and debuggers. Given program P that exhibits property ψ, conceptually, iteratively applies various transformations generate vast number of variants from by deleting certain tokens returns the minimal variant preserving ψ result. A process inevitably generates duplicate variants, them can be significant. Our study reveals on average 61.8% 24.3% generated in two...
Program reduction is a practical technique widely used for debugging compilers. To report compiler bug with bug-triggering program, one needs to minimize the program by removing bugirrelevant elements first. Though existing techniques, such as C-Reduce and Perses, can reduce whole, they overlook fact that degree of relevance each remaining token varies. this end, we propose Pairwise Reduction (PPR), new minimizing pair programs w.r.t. certain properties. Given seed 𝑃𝑠 , variant 𝑃𝑣 derived...
Program reduction strives to eliminate bug-irrelevant code elements from a bug-triggering program, so that (1) smaller and more straightforward program can be obtained, (2) the difference among duplicates ( i.e. , different programs trigger same bug) minimized or even eliminated. With such canonicalization functionality, facilitates debugging for software, especially language toolchains, as compilers, interpreters, debuggers. While many techniques have been proposed, most of them (especially...
Program reduction is a widely used technique to facilitate debugging compilers by automatically minimizing programs that trigger compiler bugs.Existing program techniques are either generic wide range of languages (such as Perses and Vulcan) or specifically optimized for one certain language exploiting language-specific knowledge (e.g., C-Reduce).However, synergistically combining both generality across optimality specific in yet be explored.This paper proposes LPR, the first LLMs-aided...
Program reduction is a widely adopted, indispensable technique for debugging language implementations such as compilers and interpreters. Given program 𝑃 bug triggered by 𝑃, reducer can produce minimized 𝑃∗ that derived from still triggers the same bug. Perses one of state-of-the-art reducers. It leverages syntax to guide process efficiency effectiveness. language-agnostic its algorithm independent any language-specific syntax. Conceptually support new language, only needs context-free...
The quality of railroad wheelsets is an important guarantee for the safe operation wagons, and mastering production information plays a vital role in vehicle scheduling transportation safety. However, when using objection detection methods to detect wheelsets, there are situations that affect such as character tilting unfixed position. Therefore, this paper proposes deep learning-based method accurately detecting recognizing tilted on wagon wheelsets. It covers three parts. Firstly, we...
Delta Debugging is a widely used family of algorithms (e.g., ddmin and ProbDD) to automatically minimize bug-triggering test inputs, thus facilitate debugging. It takes list elements with each element representing fragment the input, systematically partitions at different granularities, identifies deletes bug-irrelevant partitions. Prior delta debugging assume there are no differences among in list, treat them uniformly during partitioning. However, practice, this assumption usually does not...
Given a list L of elements and property that exhibits, ddmin is well-known test input minimization algorithm designed to automatically eliminate irrelevant from L. This extensively adopted in software debloating. Recently, ProbDD, an advanced variant ddmin, has been proposed achieved state-of-the-art performance. Employing Bayesian optimization, ProbDD predicts the likelihood each element being essential, statistically decides which how many should be removed time. Despite its impressive...
A high-quality program generator is essential to effective automated compiler testing. Engineering such a difficult, time-consuming, and specific the language under testing, thus requiring tremendous efforts from human experts with language-specific domain knowledge. To avoid repeatedly writing generators for different languages, researchers recently proposed language-agnostic approach based on deep learning techniques automatically learn (referred as DLG) existing programs. Evaluations show...
Program reduction is a prevalent technique to facilitate compilers' debugging by automatically minimizing bug-triggering programs. Existing program techniques are either generic across languages (e.g., Perses and Vulcan) or specifically customized for one certain language employing language-specific features, like C-Reduce. However, striking the balance between generality multiple programming specificity individual in yet be explored. This paper proposes Lampr, first utilizing LLMs perform...
In this paper, a SAR image target detection acceleration technology based on FPGA hardware resources is proposed. Using RTL code level design method, four basic convolutional neural network operators are developed: conv2d, PW, DW and reshape. At the same time, using software collaborative set of reconfigurable accelerator AI instruction designed to support mobilenetv3 Yolov3 realize task low-power high-precision for images. The measured results show that can reach 102 FPS with structure 125...