-
[2021/02/25][짤막한 이야기 - 제어흐름 평탄화]짤막한 이야기 2021. 2. 25. 20:55728x90반응형
[2021/02/25][짤막한 이야기 - 제어흐름 평탄화]
“제어흐름 평탄화(Control-Flow Flattening)”은 제어흐름을 이해하기 어렵게하는 보호 기술 중 하나이다.
즉, 역공학을 방지하는 기술 중 하나이며, 이러한 기술을 “난독화(Obfuscation)”라고 한다.
난독화 기술 중 하나의 범주인 “제어흐름 난독화(Control-Flow Obfuscation)”에 해당한다.
단순한 “Hello World!”를 출력하는 코드를 실행 순서를 파악하기 어렵게 한다.
위 예시에서는 평탄화되는 코드 블록의 수가 2개밖에 되지 않지만, 만약 이것이 200개, 2000개로 분할된다면 분석하기 더욱 어려워질 것이다.
이 난독화의 적용 결과로 직렬로 내려가야 하는 제어흐름이 피라미드 형태로 퍼지게 되었다.
이것이 위 기술이 제어흐름 평탄화라고 불리는 이유이다.
해당 기술은 “코드 패킹”과 함께 매우 많이 사용되는 대표적인 제어흐름 난독화 기술이다.
[관련된 짤막한 이야기 - 코드 패킹[2021/01/15]]
#이야기 #루니프 #제어흐름 #평탄화 #난독화 #패킹
[2021/02/25][Short Story - Control-Flow Flattening]
“Control-Flow Flattening” is one of the protection techniques that makes it difficult to understand the control-flow.
In other words, it is one of the techniques that prevent reverse engineering, and these techniques are called “Obfuscation”.
It corresponds to “Control-Flow Obfuscation”, which is one category of obfuscation techniques.
Code that prints a simple "Hello World!" makes it difficult to determine the order of execution.
In the example above, the number of code blocks to be flattened is only two, but if it is divided into 200 and 2000, it will be more difficult to analyze.
As a result of the application of this obfuscation, the control-flow that had to go down in series was spread in the form of a pyramid.
This is why the above technique is called control-flow flattening.
This technique is a representative control-flow obfuscation technique that is used very often along with "Code Packing".
[Related Short Story - Code Packing[2021/01/15]]
#Story #LootNiP #ControlFlow #Flattening #Obfuscation #Packing728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2021/02/28][짤막한 이야기 - 하이브리드 암호시스템] (0) 2021.02.28 [2021/02/27][짤막한 이야기 - 대칭키 & 비대칭키] (0) 2021.02.27 [2021/02/24][짤막한 이야기 - 안티디스어셈블] (0) 2021.02.24 [2021/02/23][짤막한 이야기 - 공학 & 역공학] (0) 2021.02.23 [2021/02/18][짤막한 이야기 - 동적 분석 & 정적 분석] (1) 2021.02.18