GET /api/techniques/76/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 76,
    "key": "control-flow-graph-flattening",
    "unprotect_id": "U0216",
    "name": "Control Flow Graph Flattening",
    "description": "Control flow flattening is a technique used to obfuscate the control flow of a program, in order to make it more difficult for a disassembler to accurately interpret the program's behavior. This technique involves breaking up the nesting of loops and if-statements in a program, and then hiding each of them in a case of a large switch statement. This switch statement is then wrapped inside the body of a loop, which makes it difficult for the disassembler to follow the control flow and generate correct disassembly output.\r\n\r\nControl flow flattening is often used by malware authors to make it more difficult for analysts to reverse engineer the malware and understand its behavior. It can also be used to protect legitimate software from being reverse engineered by competitors or hackers.",
    "resources": "http://ac.inf.elte.hu/Vol_030_2009/003.pdf",
    "creation_date": "2019-03-18T13:51:58Z",
    "tags": "Control flow flattening,\r\nAnti-disassembling,\r\nObfuscation,\r\nSwitch statement,\r\nLoop statement,\r\nControl flow,\r\nNesting,\r\nUnstructured code,\r\nComplex control flow,",
    "modification_date": "2023-10-04T10:42:40.326000Z",
    "category": [
        5
    ],
    "rules": [],
    "attachments": [],
    "featured_api": [],
    "contributors": []
}