Zhenyang Xu

ORCID: 0000-0002-9451-4031
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • 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.

10.1145/3460319.3464837 article EN 2021-07-08

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...

10.1145/3711816 article EN ACM Transactions on Software Engineering and Methodology 2025-01-08

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...

10.1145/3586049 article EN Proceedings of the ACM on Programming Languages 2023-04-06

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...

10.1109/tse.2021.3117966 article EN IEEE Transactions on Software Engineering 2021-10-08

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).

10.1145/3575693.3575740 article EN 2023-01-27

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...

10.1145/3617172 article EN ACM Transactions on Software Engineering and Methodology 2023-09-05

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...

10.1145/3611643.3616275 article EN 2023-11-30

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...

10.1145/3690631 article EN ACM Transactions on Software Engineering and Methodology 2024-08-30

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...

10.1145/3650212.3652126 article EN 2024-09-11

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...

10.1145/3611643.3613101 article EN 2023-11-30

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...

10.3390/s23187716 article EN cc-by Sensors 2023-09-07

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...

10.48550/arxiv.2411.19410 preprint EN arXiv (Cornell University) 2024-11-28

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...

10.48550/arxiv.2408.04735 preprint EN arXiv (Cornell University) 2024-08-08

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...

10.24963/ijcai.2023/542 article EN 2023-08-01

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...

10.48550/arxiv.2312.13064 preprint EN other-oa arXiv (Cornell University) 2023-01-01

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...

10.1109/bigsardata53212.2021.9574381 article EN 2021-09-22
Coming Soon ...