• 제목/요약/키워드: Symbolic-Execution

검색결과 34건 처리시간 0.031초

Symbolic computation and differential quadrature method - A boon to engineering analysis

  • Rajasekaran, S.
    • Structural Engineering and Mechanics
    • /
    • 제27권6호
    • /
    • pp.713-739
    • /
    • 2007
  • Nowadays computers can perform symbolic computations in addition to mere number crunching operations for which they were originally designed. Symbolic computation opens up exciting possibilities in Structural Mechanics and engineering. Classical areas have been increasingly neglected due to the advent of computers as well as general purpose finite element software. But now, classical analysis has reemerged as an attractive computer option due to the capabilities of symbolic computation. The repetitive cycles of simultaneous - equation sets required by the finite element technique can be eliminated by solving a single set in symbolic form, thus generating a truly closed-form solution. This consequently saves in data preparation, storage and execution time. The power of Symbolic computation is demonstrated by six examples by applying symbolic computation 1) to solve coupled shear wall 2) to generate beam element matrices 3) to find the natural frequency of a shear frame using transfer matrix method 4) to find the stresses of a plate subjected to in-plane loading using Levy's approach 5) to draw the influence surface for deflection of an isotropic plate simply supported on all sides 6) to get dynamic equilibrium equations from Lagrange equation. This paper also presents yet another computationally efficient and accurate numerical method which is based on the concept of derivative of a function expressed as a weighted linear sum of the function values at all the mesh points. Again this method is applied to solve the problems of 1) coupled shear wall 2) lateral buckling of thin-walled beams due to moment gradient 3) buckling of a column and 4) static and buckling analysis of circular plates of uniform or non-uniform thickness. The numerical results obtained are compared with those available in existing literature in order to verify their accuracy.

안드로이드 커널 모듈 취약점 탐지를 위한 자동화된 유닛 테스트 생성 기법 (Automated Unit-test Generation for Detecting Vulnerabilities of Android Kernel Modules)

  • 김윤호;김문주
    • 정보과학회 논문지
    • /
    • 제44권2호
    • /
    • pp.171-178
    • /
    • 2017
  • 본 논문에서는 안드로이드 커널 모듈의 취약점을 탐지하기 위한 자동 유닛 테스트 생성 기법을 제안한다. 안드로이드 커널 모듈의 각 함수를 대상으로 테스트 드라이버/스텁 함수를 자동 생성하고 동적 기호 실행 기법을 사용하여 테스트 입력 값을 자동으로 생성한다. 또한 안드로이드 커널 모듈의 함수 포인터와 함수 선행 조건을 고려하지 않은 테스트 생성으로 인한 거짓 경보를 줄이기 위해 정적 분석을 통한 함수 포인터 매칭 기법과 def-use 분석을 사용한 함수 선행 조건 생성 기법을 개발하였다. 자동 유닛 테스트 생성 기법을 안드로이드 커널 3.4 버전의 세 모듈에 적용한 결과 기존에 존재하던 취약점을 모두 탐지할 수 있었으며 제안한 거짓 경보 감소 기법으로 평균 44.9%의 거짓 경보를 제거할 수 있었다.

마이크로프로그램의 검증을 위한 테스트 데이터 생성기법 (Test Data Generation Technique for Microprogram Verification)

  • 박상현;김진석;은성배;맹승렬;조정완
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제5권4호
    • /
    • pp.526-532
    • /
    • 1999
  • 본 논문에서는 마이크로프로그램을 위한 테스트 데이타를 자동으로 생성하는 시스템을 제안하였다. 이 시스템에서는 주어진 경로를 따라 마이크로프로그램을 기호수행(symbolic execution)시켜 경로조건식을 구하고 이 식를 풀어서 테스트 데이타를 생성한다. 기호수행 방법을 이용하여 테스트 데이타를 생성하기 위해서는 경로조건식이 선형이어야 한다. 따라서 본 논문에서는 마이크로프로그램의 테스트 데이타를 생성하기 위하여 마이크로프로그램에서 사용되는 연산자들을 선형 연산자로 변환하는 방법을 제안하였다. Abstract In this paper, we propose an automated test data generation system for microprogram. This system symbolically executes microprogram along a given path, extracts path conditions for the given path, and generates test data by solving the path conditions. To generate test data using symbolic execution, the path conditions must be linear. Therefore, we propose a linearization method which transforms operators used in the microprogram into linear operators.

자연어 처리 모델을 활용한 퍼징 시드 생성 기법 (A Fuzzing Seed Generation Technique Using Natural Language Processing Model)

  • 김동영;전상훈;류민수;김휘강
    • 정보보호학회논문지
    • /
    • 제32권2호
    • /
    • pp.417-437
    • /
    • 2022
  • Fuzzing에서 seed corpus의 품질은 취약점을 보다 빠르게 찾기 위해서 중요한 요소 중 하나라고 할 수 있다. 이에 dynamic taint analysis와 symbolic execution 기법 등을 활용하여 효율적인 seed corpus를 생성하는 연구들이 진행되어왔으나, 높은 전문 지식이 요구되고, 낮은 coverage로 인해 광범위한 활용에 제약이 있었다. 이에 본 논문에서는 자연어 처리 모델인 Sequence-to-Sequence 모델을 기반으로 seed corpus를 생성하는 DDRFuzz 시스템을 제안한다. 본 논문에서 제안하는 시스템은 멀티미디어 파일을 입력값으로 하는 5개의 오픈소스 프로젝트를 대상으로 관련 연구들과 비교하여 효과를 검증하였다. 실험 결과, DDRFuzz가 coverage와 crash count 측면에서 가장 뛰어난 성능을 나타냄을 확인할 수 있었고, 또한 신규 취약점을 포함하여 총 3개의 취약점을 탐지하였다.

목적 지향 콘콜릭 테스팅 (Goal-oriented Concolic Testing)

  • 정인상;박정규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제37권10호
    • /
    • pp.768-772
    • /
    • 2010
  • 콘콜릭 테스트는 높은 테스트 커버리지를 달성하기 위해 실제 프로그램 수행과 심볼릭 수행을 결합하여 테스트 데이터를 생성한다. CREST는 콘콜릭 테스팅을 구현한 대표적인 open-source인 테스트 도구이다. 그러나 현재 CREST는 기본적으로 프로그램의 모든 가능한 실행 경로들을 탐색하는 것을 목적으로 한다. 이 때문에 특정 분기 또는 블록만을 테스트하는 경우에는 비효율적일 수 있다. 이 논문에서는 프로그램 상의 한 분기 또는 블록을 주고 이률 실행할 수 있는 테스트 데이터를 생성하는 목적 지향 콘콜릭 테스트 방법을 제안한다.

Classification of Diagnostic Information and Analysis Methods for Weaknesses in C/C++ Programs

  • Han, Kyungsook;Lee, Damho;Pyo, Changwoo
    • 한국컴퓨터정보학회논문지
    • /
    • 제22권3호
    • /
    • pp.81-88
    • /
    • 2017
  • In this paper, we classified the weaknesses of C/C++ programs listed in CWE based on the diagnostic information produced at each stage of program compilation. Our classification identifies which stages should be responsible for analyzing the weaknesses. We also present algorithmic frameworks for detecting typical weaknesses belonging to the classes to demonstrate validness of our scheme. For the weaknesses that cannot be analyzed by using the diagnostic information, we separated them as a group that are often detectable by the analyses that simulate program execution, for instance, symbolic execution and abstract interpretation. We expect that classification of weaknesses, and diagnostic information accordingly, would contribute to systematic development of static analyzers that minimizes false positives and negatives.

C 프로그램을 테스팅하기 위한 분기 커버리지에 기반을 둔 자동 테스트 데이터 생성 (Automated Test Data Generation Based on Branch Coverage for Testing C Programs)

  • 정인상
    • 한국콘텐츠학회논문지
    • /
    • 제12권11호
    • /
    • pp.39-48
    • /
    • 2012
  • 소프트웨어 테스팅이 소프트웨어 개발 비용의 상당 부분을 차지하는 것은 잘 알려진 사실이다. 소프트웨어 테스팅 비용을 줄이기 위해 소프트웨어 테스트 데이터를 자동으로 생성하는 방법에 많은 연구가 이루어지고 있다. 일반적으로 테스트 데이터 자동 생성을 지원하기 위해 심볼릭 실행기나 제약 해결기와 같은 정교한 도구들을 요구한다. 그러나 이와 같은 도구들을 개발하거나 구입하는 것은 소프트웨어 테스트 관련 비용을 증가시키는 또 다른 요소로 작용된다. 이 논문에서는 심볼릭 실행이나 제약 해결에 의존되지 않는 동적 테스트 데이터 방법을 제안한다. 제안된 방식은 분기 커버리지 기준을 효과적으로 만족하도록 Korel의 경로 지향 테스트 데이터 생성 방법을 확장한다. 이 논문에서는 삼각형 분류 프로그램에 대한 실험을 통하여 제안된 방법이 분기 커버리지를 매우 효과적으로 달성함을 보인다.

정신 연습의 기전과 적용 방법 (Mechanism and Application Methodology of Mental Practice)

  • 김종순;이근희;배성수
    • The Journal of Korean Physical Therapy
    • /
    • 제15권2호
    • /
    • pp.75-84
    • /
    • 2003
  • The purpose of this study was to review of mechanism and application methodology about mental practice. The mental practice is symbolic rehearsal of physical activity in the absence of any gross muscular movements. Human have the ability to generate mental correlates of perceptual and motor events without any triggering external stimulus, a function known as imagery, Practice produces both internal and external sensory consequences which are thought to be essential for learning to occur, It is for this reason that mental practice, rehearsal of skill in imagination rather than by overt physical activity, has intrigued theorists, especially those interested in cognitive process. Several studies in sport psychology have shown that mental practice can be effective in optimizing the execution of movements in athletes and help novice learner in the incremental acquisition of new skilled behaviors. There are many theories of mental practice for explaining the positive effect In skill learning and performance. Most tenable theories are symbolic learning theory, psyconeuromuscular theory, Paivio's theory, regional cerebral blood flow theory, motivation theory, modeling theory, mental and muscle movement nodes theory, insight theory, selective attention theory, and attention-arousal set theory etc.. The factors for influencing to effects of mental practice are application form, application period, time for length of the mental practice, number of repetition, existence of physical practice.

  • PDF

다단계 스택 지향 포인터가 있는 프로그램 테스트를 위한 테스트 데이터 자동 생성 (Automated Test Data Generation for Testing Programs with Multi-level Stack-directed Pointers)

  • 정인상
    • 정보처리학회논문지D
    • /
    • 제17D권4호
    • /
    • pp.297-310
    • /
    • 2010
  • 최근에 콘콜릭 테스트이라 불리는 새로운 테스팅 방법이 많은 관심을 받고 있다. 콘콜릭 테스팅은 높은 테스트 커버리지를 달성하기 위해 실제 프로그램 수행과 심볼릭 수행을 결합하여 테스트 데이터를 생성한다. CREST는 콘콜릭 테스팅을 구현한 대표적인 open-source 테스트 도구이다. 그러나 현재 CREST는 입력으로 정수형만 다룬다. 이 논문은 포인터형인 입력이 존재하는 경우에 자동 테스트 데이터 생성을 위한 새로운 규칙을 제안한다. 이 규칙들은 C 프로그램에서 주로 사용되는 다단계 스택 지향 포인터를 효과적으로 처리한다. 또한, 이 논문에서는 제안 된 규칙을 구현한 vCREST라 불리는 도구에 대해 기술하고 C 프로그램에 적용한 결과도 함께 기술한다.

Translation Java Bytecode to EVM SIL Code for Embedded Virtual Machines

  • Lee, Yang-Sun;Park, Jin-Ki
    • 한국멀티미디어학회논문지
    • /
    • 제8권12호
    • /
    • pp.1658-1668
    • /
    • 2005
  • This paper presents the bytecode-to-SIL translator which enables the execution of the java program in EVM(Embedded Virtual Machine) environment without JVM(java Virtual Machine), translating bytecodes produced by compiling java programs into SIL(Standard Intermediate Language) codes. EVM, what we are now developing, is a virtual machine solution that can download and execute dynamic application programs written in sequential languages like C language as well as object oriented languages such as C#, Java, etc. EVM is a virtual machine mounted on embedded systems such as mobile device, set-top box, or digital TV, and converts the application program into SIL, an assembly language symbolic form, and execute it. SIL is a virtual machine code for embedded systems, based on the analysis of existing virtual machine codes such as bytecode, MSIL, etc. SIL has such features as to accommodate various programming languages, and in particularly has an operation code set to accept both object-oriented languages and sequential languages. After compiling, a program written in java language is converted to bytecode, and also executed by JVM platform but not in other platform such as .NET, EVM platform. For this reason, we designed and implemented the bytecode-to-SIL translator system for programs written in java language to be executed in the EVM platform without JVM. This work improves the execution speed of programs, enhances the productivity, and provides an environment for programmers to execute application programs at various platforms.

  • PDF