A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.



Integrating Azure AD into the solution that allows an Electron Native application access to a .NET web API

6 minute read


This article shows how to build a solution for a Native application to access the web API deployed under Azure active directory authentication. The authentication scenario of this sample can be found in [Native application to web API Authentication Scenarios for Azure AD] (

Eclipse plugin development: how to open two parallel editors programmatically

5 minute read


Depends on the Eclipse version on which your plugin is developed, the methods of opening two editors in an eclipse plugin programmatically are quite different due to the evolvement of the Eclipse SWT. I tried many solutions provided by others online, but none of them work perfectly on my environment. Finally, I reused some source code of the “New Editor (Side by side)” feature of Eclipse fulfill the requirement for my own plug-in.

GeekWeek 2017 in Ottawa

5 minute read


As so many people keep asking me about what is Geekweek and what I did in Geekweek, I finally decided to write it down. I did give brief answers every time when I got the questions for GeekWeek. But it seems that it is hard to make it clear enough in a short answer, especially when I told them that I built a visualization application which doesn’t sound like related to cyber security. With this article, next time when people ask me what I have done in those 9 days on the other side of Canada, I would send them this blog and they will get a full picture of Geekweek. By structuring this article as questions and answers, after reading this, you are supposed to get a basic idea of GeekWeek and able to find the necessary information about it.


Japanese Cheese Cake



  • 8 eggs
  • 500g cream cheese
  • 80g mile
  • 200g cream 33%
  • 180g yogurt
  • 140g sugar
  • 130g cake flour
  • 1 tea spoon lemon juicy or vinegar


Parameters Estimation of LFMCW Signals [J]

Published in Modern Radar, 2006

This new algorithm for estimating the parameters of LFMCW signals is presented.The Time-Frequency curve can be obtained by short-time Fourier transform.According to the periodic characters of the Time-Frequency curve the characters of the frequency spectrum of the curve can be found.The relationship between parameters of signals and spectrum-lines’ positions or amplitudes can be confirmed.Then the main parameters of signal can be obtained.Simulation results prove that the method can estimate the parameters of LFMCW signals accurately.When the signal-noise ratio is higher than-8 dB,the performance of the algorithm is stable and the precision of the algorithm is good.


Multi-component signal processing against continue-wave background

Published in Journal of Data Acquisition & Processing, 2006

The algorithm for multi-component signal processing against the background of linear frequency modulated continuous wave(LFMCW) in electronic reconnaissance is discussed.The pulse signals can be detected from the continue-wave background by analyzing every time slice of the short-time Fourier transform exerted on the received signal.By filtering the LFM pulse signals and remaining the component of the CW signal,the periodic time-frequency curve of LFMCW radar signal can be obtained.According to characters of the spectrum of the time-frequency curve,the main parameters of the LFMCW signal can be estimated.Then,by filtering LFMCW component from pulse signals,the parameters of the LFM pulse signals can be estimated by the relative algorithms.Simulation results indicate that the method can accurately estimate the parameters of LFMCW signals and LFM pulse signals.When SNR of the LFMCW signals is higher than(-8 dB) and its power is 6 dB lower compared with LFM pulse signals,the performance of the algorithm is stable and the precision is good.


Atlantis: Improving the Analysis and Visualization of Large Assembly Execution Traces

Published in The International Conference on Software Maintenance and Evolution (ICSME), 2017

Assembly execution trace analysis is an effective approach for discovering potential software vulnerabilities. However, the size of the execution traces and the lack of source code makes this a manual, labor-intensive process. Instead of browsing billions of instructions one by one, software security analysts need higher-level information that can provide an overview of the execution of a program to assist in the identification of patterns of interest. The tool we present in this paper, Atlantis, is our trace analysis environment for multi-gigabyte assembly traces, and it contains a number of new features that make it particularly successful in meeting this goal. The contributions of this continuous work fall into three main categories: a) the ability to efficiently reconstruct and navigate the memory state of a program at any point in a trace; b) the ability to reconstruct and navigate functions and processes; and c) a powerful search facility to query and navigate traces. These contributions are not only novel for Atlantis but also for the field of assembly trace analysis. Software is becoming increasingly complex and many applications are designed as collaborative systems or modules interacting with each other, which makes the discovery of vulnerabilities extremely difficult. With the novel features we describe in this paper, our tool extends the security analyst’s ability to investigate vulnerabilities of real-world large execution traces and can lay the groundwork for supporting trace analysis of interacting programs in the future.