5 research outputs found

    Leveraging WebAssembly for Numerical JavaScript Code Virtualization

    Get PDF
    Code obfuscation built upon code virtualization technology is one of the viable means for protecting sensitive algorithms and data against code reverse engineering attacks. Code virtualization has been successfully applied to programming languages like C, C++, and Java. However, it remains an outstanding challenge to apply this promising technique to JavaScript, a popular web programming language. This is primarily due to the open visibility of JavaScript code and the expensive runtime overhead associated with code virtualization. This paper presents JSPro , a novel code virtualization system for JavaScript. JSPro is the first JavaScript code obfuscation tool that builds upon the emerging WebAssembly language standard. It is designed to provide more secure code protection but without incurring a significant runtime penalty, explicitly targeting numerical JavaScript kernels. We achieve this by first automatically translating the target JavaScript code into WebAssembly and then performing code obfuscation on the compiled WebAssembly binary. Our design has two advantages over existing solutions: (1) it increases the code reverse entering complexity by implementing code obfuscation at a lower binary level and (2) it significantly reduces the performance impact of code virtualization over the native JavaScript code by using the performance-tuned WebAssembly language. We evaluate JSPro on a set of numerical JavaScript algorithms widely used in many applications. To test the performance, we apply JSPro to four mainstream web browsers running on three distinct mobile devices. Compared to state-of-the-art JavaScript obfuscation tools, JSPro not only provides stronger protection but also reduces the runtime overhead by at least 15% (up to 38.2%) and the code size by 28.2% on average

    Development of a prototype sensor-integrated urine bag for real-time measuring.

    Get PDF
    The urine output is a rapid bedside test for kidney function, and reduced output is the common biomarker for an acute kidney injury (AKI). The consensus definition of the symptom is used urine output <0.5 ml/kg/hour for ≥6 hours to define AKI. If a patient is suspected to have this problem, the urine output monitoring needs to be done hourly, and this task consumes a lot of time, and easily affected by human errors. Moreover, available evidences in literatures indicate that more frequent patient monitoring could impact clinical decision making and patient’s outcome. However, it is not possible for nurses to dedicate their precious time manually up to minute manually measurements. To date, there is no reliable device has been used in the clinical routine. From the literatures, only a few automated devices were found with the ability to automatically monitor urine outputs, and could reduce nurse workload and at the same time enhance work performance, but these still have some limitations to measure human urine. In this thesis presents the development and testing for such a device. The research was aimed at building a prototype that could be measured a small amount of urine output, and transit information via wireless to a Cloud database with inexpensive and less complex components. The concept is to provide a real-time measurement and generates data records in Cloud database without requiring any intervention by the nurse. The initial experiment was done measure small amount of liquid using a dropvolume calculation technique. An optical sensor was placed in a medical dropper to record number of counted-drops, the Mean Absolute Percent Error from the test is reported ±3.96% for measuring 35 ml of liquid compared with the ISO standard. The second prototype was developed with multi-sensors, including photo interrupter sensor, infrared proximity sensor, and ultrasonic sensor, to detect the dripping and urine flow. However, the optical sensor still provided the most accuracy of all. The final prototype is based on the combination of optical sensor for detecting drops to calculated urine flow rate and its volume, and weight scales to measurement the weight of collected urine in a commercial urine meter. The prototype also provides an alert in two scenarios; when the urine production is not met the goals, and when the urine container is almost full, the system will automatically generate alarms that warn the nurse. Series of experimentation tests have been conducted under consultant of medical professional to verify the proper operation and accuracy in the measurement. The results are improved from the previous prototype. The mean error found of this version is 1.975% or ≈ ±1.215 ml. when measure 35ml of urine under the average density value of urine (1.020). These tests confirm the potential application of the device by assisting nurse to monitor urine output with the accuracy in the measurement. The use of the Cloud based technology has not been previously reported in the literature as far as can be ascertained. These results illustrated the capability, suitability and limitation of the chosen technology

    Static virtualization of C source code

    No full text
    Many existing systems are written in C and are not re-entrant or thread safe. Sometimes these systems are required in a context for which they were not first designed, possibly meaning they now need to be re-entrant. This article introduces a program that filters C source code, modifying shared resources (the global variables) to make the code re-entrant: virtualizing the code. The code is then compiled as normal. This approach allows programmatic virtualization with little cost at runtime. Copyright © 2007 John Wiley & Sons, Ltd
    corecore