• Title/Summary/Keyword: 바이너리 프로그램

Search Result 75, Processing Time 0.027 seconds

A Survey for National Component Standard Development and Potential Demands (국내 컴포넌트 표준의 개발 방향 및 수요조사에 관한 연구)

  • Chun, In-Geol;Jang, Jin-Ho
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2003.05c
    • /
    • pp.1849-1852
    • /
    • 2003
  • 컴포넌트란 하나 이상의 기능을 가진 독립적인 소프트웨어이며, 조립을 통해 응용 프로그램을 생산할 수 있는 규격화된 부품을 의미한다. 이러한 컴포넌트는 대개의 경우 EJB, COM 등의 프레임워크 표준에 따라 만들어진 바이너리 코드인 구현 컴포넌트만을 지칭하였지만 최근에는 개발 과정에서 만들어진 재사용 가능한 모든 산출물을 포괄하는 개념으로 확장되었다. 즉, 분석 및 설계 과정에서 만들어지는 문서 형태의 중간 산출물 역시 재사용의 대상이며, 경우에 따라서는 그 효과가 훨씬 크고 근본적일 수도 있기 때문이다. 그러나 그간의 적용 경험과 여러 연구에서 지적된 바와 같이 이러한 컴포넌트 기반 개발의 장점을 살리고 널리 보급하기 위해서는 컴포넌트를 이용한 시스템개발의 단순한 요소 기술이 아니라 시스템 개발 환경 전반을 포괄하는 기반 환경으로 이해하고 이를 지원할 수 있는 체제를 구축해야 한다. 특히 컴포넌트의 특성상 다양한 개발 방식이 공존하게 되므로 이들간 최소한의 공통적인 부분을 유지할 수 있게 해주는 컴포넌트 관련 표준의 제정이 시급한 실정이다.

  • PDF

A Study on the Development of Web Service based Operational Data Transfer System of CANDU Nuclear Reactor (웹서비스를 이용한 가압중수로 운전 데이터 전송 시스템 개발 사례에 관한 연구)

  • Lee, Sang-Hoon;Kim, Eung-Gon;Kwon, O-Whan;Yeum, Choong-Sub
    • 한국IT서비스학회:학술대회논문집
    • /
    • 2006.05a
    • /
    • pp.470-475
    • /
    • 2006
  • 원자력발전소를 안정적으로 운전하기 위해서는 현재 원자로 상태를 파악하고 향후 상태를 예측하기 위해 데이터를 추출하고 가공하는 기술이 필수적이다. 또한 현재 월성 원자력발전소에서 사용하고 있는 클라이언트 서버 기반이 노심관리 업무 프로그램은 향후 도입될 웹 기반 시스템과 상호운용성을 보장함과 동시에 표준화된 계측 데이터를 생산, 제공하여 유지보수 및 생산성을 높이는 것도 요구된다. 이런 요구에 부합하기 위해 웹서비스를 이용하는 것을 고려한 결과, 원자로 계측 시스템에서 만들어진 바이너리 파일을 파싱하여 .NET 기반의 웹애플리케이션에서 사용할 수 있도록 XML형태의 데이터셋으로 전송하는 시스템을 개발하였다. 본 논문에서는 원자력발전소의 데이터 처리 방법과 웹서비스를 이용한 원자로 계측 데이터 전송 시스템 구현에 관한 사례를 소개한다.

  • PDF

Detection of Malicious Android Apps Using String Analysis (문자열 분석 기반 유해 안드로이드 앱 검출)

  • Choi, Kwanghoon;Park, Kyeongdeuk;Ko, Kwangman;Park, Heewan;Youn, Jonghee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.1180-1182
    • /
    • 2012
  • 안드로이드 앱에서 접근할 수 있는 유해 사이트를 프로그램 분석 방법으로 검출하는 방법을 제안한다. 주어진 앱의 바이너리 코드를 자바바이트 코드로 역 컴파일하고 문자열 분석 방법을 적용하여 실행 중 사용 가능한 문자열 집합을 계산한 다음 유해 사이트 URL 문자열이 포함되어 있는지 확인하는 방법이다. 기존에는 앱을 직접 실행해서 특정 URL에 접속하는지 감시하는 동적 모니터링 방법인 반면, 제안한 방법은 앱을 실행할 필요가 없다. 앱스토어 관리에서 주기적으로 유해 앱 여부를 검사하는데 제안한 방법을 활용할 수 있다.

A Development of an URL Navigator using Speech Recognition (음성인식을 이용한 URL Navigator 개발)

  • Jeon, Han-Gil;Hong, In-Suk;Kim, Yoon-Joong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2009.04a
    • /
    • pp.122-125
    • /
    • 2009
  • 기존의 인터넷 익스플로러는 높은 보급률의 이점을 지니고 있지만 인터넷을 이용하기 위한 기본지식의 필요성과 키보드, 마우스와 같은 장치를 이용한 입력방식은 장애인 및 고령층의 사용자들이 이용하기에는 불편하다. 이와 같은 문제점을 해결하고자 본 논문에서는 웹 서비스 기술을 이용하여 기존의 음성인식 시스템을 웹 서비스로 재구성하고 클라이언트가 음성인식 웹 서비스를 요청하고 음성명령이 가능하도록 인터넷 익스플로러에 음성명령이 가능한 Navigaotr를 Toolbar 형태의 프로그램을 구현하였다. 본 시스템은 클라이언트가 사용하는 음성 Navigator Toolbar와 웹 서비스를 통해서 음성 서비스를 제공하는 음성 서비스 프로바이더로 구성된다. 음성 Navigator Toolbar는 인터넷 환경에서 음성데이터를 바이너리 포맷형식인 DIME을 이용하여 음성 서비스 프로바이더로 전송하고 반환 결과를 가지고 URL Navigator를 통해 인터넷 페이지를 이동시킨다. 음성 서비스 프로바이더는 사용자가 전송한 음성데이터를 인식기를 통해 인식하고 결과를 가지고 정보 Database를 검색하여 실제 인터넷 주소를 사용자에게 반환한다.

Understanding of x86 processor architecture (x86 프로세서 이해)

  • Kim, Do Yeon;An, Hyun Su;Jeon, Jae Wook
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2020.11a
    • /
    • pp.564-567
    • /
    • 2020
  • 본 논문은 공학계열 학생들이 어셈블리 프로그래밍을 통해 x86 프로세서를 학습하는 교육 과정을 소개한다. 이 교육 과정은 어셈블리 프로그래밍을 통해 가상머신에서 프로그램을 실행시켜 학생들이 전공 교과 과정에서 학습한 마이크로프로세서 이론의 이해를 향상시키도록 도와준다. 작성된 어셈블리 파일은 NASM 을 이용하여 컴파일 되고, VMware 의 Workstation Player 가 컴파일러에 의해 생성된 바이너리 파일을 실행시키기 위해 사용되었다. 교육 과정은 마이크로프로세서 이론 수업에 맞추어 과제가 학생에게 주어지고, 학생들은 이론 수업의 이해를 바탕으로 결과물을 완성하고 이를 직접 시연하여 평가받았다.

Intermediate-Representation Translation Techniques to Improve Vulnerability Analysis Efficiency for Binary Files in Embedded Devices (임베디드 기기 바이너리 취약점 분석 효율성 제고를 위한 중간어 변환 기술)

  • Jeoung, Byeoung Ho;Kim, Yong Hyuk;Bae, Sung il;Im, Eul Gyu
    • Smart Media Journal
    • /
    • v.7 no.1
    • /
    • pp.37-44
    • /
    • 2018
  • Utilizing sequence control and numerical computing, embedded devices are used in a variety of automated systems, including those at industrial sites, in accordance with their control program. Since embedded devices are used as a control system in corporate industrial complexes, nuclear power plants and public transport infrastructure nowadays, deliberate attacks on them can cause significant economic and social damages. Most attacks aimed at embedded devices are data-coded, code-modulated, and control-programmed. The control programs for industry-automated embedded devices are designed to represent circuit structures, unlike common programming languages, and most industrial automation control programs are designed with a graphical language, LAD, which is difficult to process static analysis. Because of these characteristics, the vulnerability analysis and security related studies for industry automation control programs have only progressed up to the formal verification, real-time monitoring levels. Furthermore, the static analysis of industrial automation control programs, which can detect vulnerabilities in advance and prepare for attacks, stays poorly researched. Therefore, this study suggests a method to present a discussion on an industry automation control program designed to represent the circuit structure to increase the efficiency of static analysis of embedded industrial automation programs. It also proposes a medium term translation technology exploiting LLVM IR to comprehensively analyze the industrial automation control programs of various manufacturers. By using LLVM IR, it is possible to perform integrated analysis on dynamic analysis. In this study, a prototype program that converts to a logical expression type of medium language was developed with regards to the S company's control program in order to verify our method.

An Effective Method for Comparing Control Flow Graphs through Edge Extension (에지 확장을 통한 제어 흐름 그래프의 효과적인 비교 방법)

  • Lim, Hyun-Il
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.2 no.8
    • /
    • pp.317-326
    • /
    • 2013
  • In this paper, we present an effective method for comparing control flow graphs which represent static structures of binary programs. To compare control flow graphs, we measure similarities by comparing instructions and syntactic information contained in basic blocks. In addition, we also consider similarities of edges, which represent control flows between basic blocks, by edge extension. Based on the comparison results of basic blocks and edges, we match most similar basic blocks in two control flow graphs, and then calculate the similarity between control flow graphs. We evaluate the proposed edge extension method in real world Java programs with respect to structural similarities of their control flow graphs. To compare the performance of the proposed method, we also performed experiments with a previous structural comparison for control flow graphs. From the experimental results, the proposed method is evaluated to have enough distinction ability between control flow graphs which have different structural characteristics. Although the method takes more time than previous method, it is evaluated to be more resilient than previous method in comparing control flow graphs which have similar structural characteristics. Control flow graph can be effectively used in program analysis and understanding, and the proposed method is expected to be applied to various areas, such as code optimization, detection of similar code, and detection of code plagiarism.

An Implementation of Socket Interface for TOEs (TOE를 위한 소켓 인터페이스의 구현)

  • Son, Sung-Hoon
    • Journal of Korea Multimedia Society
    • /
    • v.8 no.11
    • /
    • pp.1472-1482
    • /
    • 2005
  • In this paper, we propose a socket interface layer for large-scale multimedia servers that adopt TCP/IP Offload Engines (TOE). In order to provide legacy network applications with binary level compatibility, the socket interface layer intercepts all socket-related system calls to forward to either TOE or legacy TCP/IP Protocol stack. The layer is designed and implemented as a kernel module in Linux. The layer is located between BSD socket layer and INET socket layer, and passes the application's socket requests to INET socket layer or TOE. The layer provides multimedia servers and web servers with the following features: (1) All standard socket APIs and file I/O APIs that are supported (2) Support for binary level compatibility of existing socket programs (3) Support for TOE and legacy Ethernet NICs at the same time.

  • PDF

An automated memory error detection technique using source code analysis in C programs (C언어 기반 프로그램의 소스코드 분석을 이용한 메모리 접근오류 자동검출 기법)

  • Cho, Dae-Wan;Oh, Seung-Uk;Kim, Hyeon-Soo
    • The KIPS Transactions:PartD
    • /
    • v.14D no.6
    • /
    • pp.675-688
    • /
    • 2007
  • Memory access errors are frequently occurred in C programs. A number of tools and research works have been trying to detect the errors automatically. However, they have one or more of the following problems: inability to detect all memory errors, changing the memory allocation mechanism, incompatibility with libraries, and excessive performance overhead. In this paper, we suggest a new method to solve these problems, and then present a result of comparison to the previous research works through the experiments. Our approach consists of two phases. First is to transform source code at compile time through inserting instrumentation into the source code. And second is to detect memory errors at run time with a bitmap that maintains information about memory allocation. Our approach has improved the error detection abilities against the binary code analysis based ones by using the source code analysis technique, and enhanced performance in terms of both space and time, too. In addition, our approach has no problem with respect to compatibility with shared libraries as well as does not need to modify memory allocation mechanism.

Binary-level Dynamic Compiler for Driver Fault Isolation (드라이버 고장 분리를 위한 바이너리 수준 동적 컴파일러)

  • Lee, Dong-Woo;Kim, Jung-Han;Eom, Young-Ik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06b
    • /
    • pp.401-404
    • /
    • 2011
  • 운영체제와 같은 대규모 프로그램은 확장을 용이하게 하기 위해 장치 드라이버를 모듈 구조를 통해 동작시킨다. 그러나 이러한 드라이버 모듈은 커널과 분리되어 개발되기 때문에 상대적인 취약성을 가지고 있다. 이러한 취약성으로 인해 발생한 고장은 드라이버뿐만 아니라 커널 전체에 오류를 야기해 시스템의 안정성을 저하시키는 요인이 된다. 이러한 문제를 해결하기 위해 안전하지 않은 드라이버를 커널로부터 격리하고자 하는 논의가 진행되었고, 이후 많은 연구를 통해 여러 가지 접근 방식을 통한 해결방법이 제안되었다. 그러나 기존의 방법은 드라이버 소스코드의 수정이 필요하거나 드라이버 요청에 대한 응답속도가 매우 느린 현실적인 제약이 있었다. 본 논문에서는 기존방법의 한계를 극복하는 동적 컴파일러를 이용한 고장 분리 기법을 제안한다. 본 제안 기법은 기존 드라이버를 그대로 사용가능하며 기존 기법의 분리 정책을 모두 적용할 수 있다. 리눅스 커널에 본 제안기법을 적용하여 동적 컴파일러의 성능을 측정하고 본 제안 기법의 특성을 기존 기법과 비교함으로써 본 제안기법이 매우 적은 부하만으로 장치 드라이버의 고장 분리가 가능함을 확인하였다.