Yuanyi Sun
*** ***** ******, *** *, Weehawken, NJ 07086
Email: ********@*****.*** (prefer) Tel: 201-***-****
Github: github.com/hkhk366 Personal website: www.cognsoft.com
EDUCATION: Stevens Institute of Technology, Hoboken, NJ Aug.2014-Dec.2015
Master of Science in Computer Science GPA: 4.0/4.0
China Agricultural University, Beijing, China Sep.2009-Jul.2013
Bachelor of Management in Marketing GPA: 3.46/4.0
EXPERIENCE: Stevens Institute of Technology, Hoboken, NJ Jan.2015-Dec.2015
Teaching Assistant/Course Assistant, Computer Science Department
Stevens Institute of Technology, Hoboken, NJ Jun.2015-Aug.2015
Research Assistant, Computer Science Department
SKILLS: Languages: Assembly, C, C++, C#, Pascal, Basic, E language, Java, Matlab, Python
Database: MySQL, MS SQL Server, MS Access, PostgreSQL, MongoDB, NoSQL
Networks: IIS, Apache, Nginx, XML, Html, JS, Load-Balance, Socket proxy, Reverse proxy,
VPN, CDN, Intelligent DNS, Network attack analysis
Others: Reverse engineering/Cracking, Unity3D, Unreal engine, MFC, WPF,
Socket programming, Multithread programming, GDI/Html layout User Interface
RESEARCH: Access control on NoSQL database
More and more companies have adopted NoSQL. But NoSQL is different with most widely used SQL. Most of them don’t have a schema and don’t support full SQL functionality. Sensitive data are stored in NoSQL databases with plaintext. As the different structure of these two modes and NoSQL initially only focus on speed, make it difficult to add access control on this new database system. So this research is find a tradeoff between the high scalability and security. Store encrypted data with a low overhead.
Dynamic base address, offsets and auto insert junk codes in memory for anti-cracking
In most cases, a cracker scans process memory then finds base address, offsets and feature codes for one data in memory or pages. Unfortunately, every time run the program, the base address, offsets and feature codes will not change. So the cracker can use this to modify the memory data for cheating. This research is when you run the program at different time, the base address and offsets are different. And it will auto insert junk codes into the software, so the cracker can’t extract a feature codes from the software.
PROJECTS: Software protection: Load driver to inline hook and protect core API function.
Monitor and inline hook core SSDT functions. An untrusted process can’t access a protected process. Feature codes scan and prevent malicious process to create.
Lightweight high speed memory NoSQL database.
Core hash function wrote by assembly language. Hash function can inline to other language projects. Time cost depends on collision ratio. Approximately, call my hash function 100000000 times only needs 2 to 3 seconds. Even some modern NoSQL database wrote by C still can’t have this speed.
Lightweight intelligent DNS server.
Traditional DNS return first IP from load balance. Querying my DNS, return the best IP not the first IP. And no fixed TTL. The fixed TTL is huge waste for the site frequently uses. Then my DNS update IP pool with a dynamic TTL. The best IP and dynamic TTL are calculated by delay, delay jitter, speed, etc.
English input method: Intelligent complete words and adjust the position of a comma.
Auto completing the word you input and auto adjusting the position of a comma or number. Multithread programming. Searching one word from 300,000 words database no more than 50ms.
Part open source projects github.com/hkhk366 Part closed source projects cognsoft.com/sample
HONOR: National Olympiad in Informatics Second Prize
Fourth-level Certificate for National Computer Rank Examination (Network Engineer)
National Merit Scholarship