[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EHTBZFMSZX68WD95Z4WJCX":3,"skill-same:01M6EHTBZFMSZX68WD95Z4WJCX":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6EHTBZFMSZX68WD95Z4WJCX","binary-re-triage",null,"Use when first encountering an unknown binary, ELF file, executable, or firmware blob. Fast fingerprinting via rabin2 - architecture detection (ARM, x86, MIPS), ABI identification, dependency mapping, string extraction. Keywords - \"what is this binary\", \"identify architecture\", \"check file type\", \"rabin2\", \"file analysis\", \"quick scan\"","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002F2389-research\u002Fbinary-re-triage\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"binary re triage","binary","triage","use","via","identification","type","scan","file analysis","dependency","fingerprinting","check","analysis","first","detection","firmware","ELF","fast","file","architecture","2026-11-10 10:12:30",false,"---\nname: binary-re-triage\ndescription: Use when first encountering an unknown binary, ELF file, executable, or firmware blob. Fast fingerprinting via rabin2 - architecture detection (ARM, x86, MIPS), ABI identification, dependency mapping, string extraction. Keywords - \"what is this binary\", \"identify architecture\", \"check file type\", \"rabin2\", \"file analysis\", \"quick scan\"\n---\n\n# Binary Triage (Phase 1)\n\n## Purpose\n\nQuick fingerprinting to establish baseline facts before deeper analysis. Runs in seconds, not minutes.\n\n## When to Use\n\n- First contact with an unknown binary\n- Need architecture\u002FABI info for tool selection\n- Quick capability assessment\n- Before committing to expensive analysis\n\n## Key Principle\n\n**Gather facts fast, defer analysis.**\n\nThis phase identifies WHAT the binary is, not HOW it works.\n\n## Triage Sequence\n\n### Step 1: File Identification\n\n```bash\n# Basic identification\nfile binary\n\n# Expected output patterns:\n# ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter \u002Flib\u002Fld-linux-armhf.so.3\n# ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter \u002Flib\u002Fld-linux-aarch64.so.1\n```\n\n**Extract:**\n- Architecture (ARM, ARM64, x86_64, MIPS)\n- Bit width (32\u002F64)\n- Endianness (LSB\u002FMSB)\n- Link type (static\u002Fdynamic)\n- Interpreter path (libc indicator)\n\n### Step 2: Structured Metadata (rabin2)\n\n```bash\n# All metadata as JSON\nrabin2 -q -j -I binary | jq .\n\n# Key fields:\n# .arch     - \"arm\", \"x86\", \"mips\"\n# .bits     - 32 or 64\n# .endian   - \"little\" or \"big\"\n# .os       - \"linux\", \"none\"\n# .machine  - \"ARM\", \"AARCH64\"\n# .stripped - true\u002Ffalse\n# .static   - true\u002Ffalse\n```\n\n### Step 3: ABI Detection\n\n```bash\n# Interpreter detection\nreadelf -p .interp binary 2>\u002Fdev\u002Fnull\n\n# Or via rabin2\nrabin2 -I binary | grep interp\n\n# ARM-specific: float ABI\nreadelf -A binary | grep \"Tag_ABI_VFP_args\"\n# hard-float: \"VFP registers\"\n# soft-float: missing or \"compatible\"\n```\n\n**Interpreter → Libc mapping:**\n\n| Interpreter | Libc | Notes |\n|-------------|------|-------|\n| `\u002Flib\u002Fld-linux-armhf.so.3` | glibc | ARM hard-float |\n| `\u002Flib\u002Fld-linux.so.3` | glibc | ARM soft-float |\n| `\u002Flib\u002Fld-musl-arm.so.1` | musl | ARM 32-bit |\n| `\u002Flib\u002Fld-musl-aarch64.so.1` | musl | ARM 64-bit |\n| `\u002Flib\u002Fld-uClibc.so.0` | uClibc | Embedded |\n| `\u002Flib64\u002Fld-linux-x86-64.so.2` | glibc | x86_64 |\n\n### Step 4: Dependencies\n\n```bash\n# Library dependencies\nrabin2 -q -j -l binary | jq '.libs[]'\n\n# Common patterns:\n# libcurl.so.* → HTTP client\n# libssl.so.* → TLS\u002Fcrypto\n# libpthread.so.* → Threading\n# libz.so.* → Compression\n# libsqlite3.so.* → Local database\n```\n\n### Step 5: Entry Points & Exports\n\n```bash\n# Entry points\nrabin2 -q -j -e binary | jq .\n\n# Exports (for shared libraries)\nrabin2 -q -j -E binary | jq '.exports[] | {name, vaddr}'\n```\n\n### Step 6: Quick String Scan\n\n```bash\n# All strings with metadata\nrabin2 -q -j -zz binary | jq '.strings | length'  # Count first\n\n# Filter interesting strings (URLs, paths, errors)\nrabin2 -q -j -zz binary | jq '\n  .strings[] |\n  select(.length > 8) |\n  select(.string | test(\"http|ftp|\u002Fetc|\u002Fvar|error|fail|pass|key|token\"; \"i\"))\n'\n```\n\n### Step 7: Import Analysis\n\n```bash\n# All imports\nrabin2 -q -j -i binary | jq '.imports[] | {name, lib}'\n\n# Group by capability\nrabin2 -q -j -i binary | jq '\n  .imports | group_by(.lib) |\n  map({lib: .[0].lib, functions: [.[].name]})\n'\n```\n\n## Capability Mapping\n\n| Import Pattern | Capability |\n|----------------|------------|\n| `socket`, `connect`, `send` | Network client |\n| `bind`, `listen`, `accept` | Network server |\n| `open`, `read`, `write` | File I\u002FO |\n| `fork`, `exec*`, `system` | Process spawning |\n| `pthread_*` | Multi-threading |\n| `SSL_*`, `EVP_*` | Cryptography |\n| `dlopen`, `dlsym` | Dynamic loading |\n| `mmap`, `mprotect` | Memory manipulation |\n\n## Output Format\n\nAfter triage, record structured facts:\n\n```json\n{\n  \"artifact\": {\n    \"path\": \"\u002Fpath\u002Fto\u002Fbinary\",\n    \"sha256\": \"abc123...\",\n    \"size_bytes\": 245760\n  },\n  \"identification\": {\n    \"arch\": \"arm\",\n    \"bits\": 32,\n    \"endian\": \"little\",\n    \"os\": \"linux\",\n    \"stripped\": true,\n    \"static\": false\n  },\n  \"abi\": {\n    \"interpreter\": \"\u002Flib\u002Fld-musl-arm.so.1\",\n    \"libc\": \"musl\",\n    \"float_abi\": \"hard\"\n  },\n  \"dependencies\": [\n    \"libcurl.so.4\",\n    \"libssl.so.1.1\",\n    \"libz.so.1\"\n  ],\n  \"capabilities_inferred\": [\n    \"network_client\",\n    \"tls_encryption\",\n    \"compression\"\n  ],\n  \"strings_of_interest\": [\n    {\"value\": \"https:\u002F\u002Fapi.vendor.com\u002Ftelemetry\", \"type\": \"url\"},\n    {\"value\": \"\u002Fetc\u002Fconfig.json\", \"type\": \"path\"}\n  ],\n  \"complexity_estimate\": {\n    \"functions\": \"unknown (stripped)\",\n    \"strings\": 847,\n    \"imports\": 156\n  }\n}\n```\n\n## Knowledge Journaling\n\nAfter triage completes, record findings for episodic memory:\n\n```\n[BINARY-RE:triage] {filename} (sha256: {hash})\n\nIdentification:\n  Architecture: {arch} {bits}-bit {endian}\n  Libc: {glibc|musl|uclibc} ({interpreter_path})\n  Stripped: {yes|no}\n  Size: {bytes}\n\nFACT: Links against {library} (source: rabin2 -l)\nFACT: Contains {N} strings of interest (source: rabin2 -zz)\nFACT: Imports {function} from {library} (source: rabin2 -i)\n\nCapabilities inferred:\n  - {capability_1} (evidence: {import\u002Fstring})\n  - {capability_2} (evidence: {import\u002Fstring})\n\nHYPOTHESIS: {what binary likely does} (confidence: {0.0-1.0})\n\nQUESTION: {open unknown that needs investigation}\n\nNext phase: {static-analysis|dynamic-analysis}\nSysroot needed: {path or \"extract from device\"}\n```\n\n### Example Journal Entry\n\n```\n[BINARY-RE:triage] thermostat_daemon (sha256: a1b2c3d4...)\n\nIdentification:\n  Architecture: ARM 32-bit LE\n  Libc: musl (\u002Flib\u002Fld-musl-arm.so.1)\n  Stripped: yes\n  Size: 153,600 bytes\n\nFACT: Links against libcurl.so.4 (source: rabin2 -l)\nFACT: Links against libssl.so.1.1 (source: rabin2 -l)\nFACT: Contains string \"api.thermco.com\" (source: rabin2 -zz)\nFACT: Imports curl_easy_perform (source: rabin2 -i)\n\nCapabilities inferred:\n  - HTTP client (evidence: libcurl import)\n  - TLS encryption (evidence: libssl import)\n  - Network communication (evidence: URL string)\n\nHYPOTHESIS: Telemetry client that reports to api.thermco.com (confidence: 0.6)\n\nQUESTION: What data does it collect and transmit?\n\nNext phase: static-analysis\nSysroot needed: musl ARM (extract from device or Alpine)\n```\n\n## Decision Points\n\nAfter triage, determine:\n\n1. **Sysroot selection** - Based on arch + libc\n2. **Analysis tool chain** - r2 vs Ghidra vs both\n3. **Dynamic analysis feasibility** - QEMU viability based on arch\n4. **Initial hypotheses** - What does this binary likely do?\n\n## Next Steps\n\n→ Proceed to `binary-re-static-analysis` for function enumeration\n→ Or `binary-re-dynamic-analysis` if behavior observation is priority\n","# Binary Triage (Phase 1)\n\n## Purpose\n\nQuick fingerprinting to establish baseline facts before deeper analysis. Runs in seconds, not minutes.\n\n## When to Use\n\n- First contact with an unknown binary\n- Need architecture\u002FABI info for tool selection\n- Quick capability assessment\n- Before committing to expensive analysis\n\n## Key Principle\n\n**Gather facts fast, defer analysis.**\n\nThis phase identifies WHAT the binary is, not HOW it works.\n\n## Triage Sequence\n\n### Step 1: File Identification\n\n```bash\n# Basic identification\nfile binary\n\n# Expected output patterns:\n# ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter \u002Flib\u002Fld-linux-armhf.so.3\n# ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter \u002Flib\u002Fld-linux-aarch64.so.1\n```\n\n**Extract:**\n- Architecture (ARM, ARM64, x86_64, MIPS)\n- Bit width (32\u002F64)\n- Endianness (LSB\u002FMSB)\n- Link type (static\u002Fdynamic)\n- Interpreter path (libc indicator)\n\n### Step 2: Structured Metadata (rabin2)\n\n```bash\n# All metadata as JSON\nrabin2 -q -j -I binary | jq .\n\n# Key fields:\n# .arch     - \"arm\", \"x86\", \"mips\"\n# .bits     - 32 or 64\n# .endian   - \"little\" or \"big\"\n# .os       - \"linux\", \"none\"\n# .machine  - \"ARM\", \"AARCH64\"\n# .stripped - true\u002Ffalse\n# .static   - true\u002Ffalse\n```\n\n### Step 3: ABI Detection\n\n```bash\n# Interpreter detection\nreadelf -p .interp binary 2>\u002Fdev\u002Fnull\n\n# Or via rabin2\nrabin2 -I binary | grep interp\n\n# ARM-specific: float ABI\nreadelf -A binary | grep \"Tag_ABI_VFP_args\"\n# hard-float: \"VFP registers\"\n# soft-float: missing or \"compatible\"\n```\n\n**Interpreter → Libc mapping:**\n\n| Interpreter | Libc | Notes |\n|-------------|------|-------|\n| `\u002Flib\u002Fld-linux-armhf.so.3` | glibc | ARM hard-float |\n| `\u002Flib\u002Fld-linux.so.3` | glibc | ARM soft-float |\n| `\u002Flib\u002Fld-musl-arm.so.1` | musl | ARM 32-bit |\n| `\u002Flib\u002Fld-musl-aarch64.so.1` | musl | ARM 64-bit |\n| `\u002Flib\u002Fld-uClibc.so.0` | uClibc | Embedded |\n| `\u002Flib64\u002Fld-linux-x86-64.so.2` | glibc | x86_64 |\n\n### Step 4: Dependencies\n\n```bash\n# Library dependencies\nrabin2 -q -j -l binary | jq '.libs[]'\n\n# Common patterns:\n# libcurl.so.* → HTTP client\n# libssl.so.* → TLS\u002Fcrypto\n# libpthread.so.* → Threading\n# libz.so.* → Compression\n# libsqlite3.so.* → Local database\n```\n\n### Step 5: Entry Points & Exports\n\n```bash\n# Entry points\nrabin2 -q -j -e binary | jq .\n\n# Exports (for shared libraries)\nrabin2 -q -j -E binary | jq '.exports[] | {name, vaddr}'\n```\n\n### Step 6: Quick String Scan\n\n```bash\n# All strings with metadata\nrabin2 -q -j -zz binary | jq '.strings | length'  # Count first\n\n# Filter interesting strings (URLs, paths, errors)\nrabin2 -q -j -zz binary | jq '\n  .strings[] |\n  select(.length > 8) |\n  select(.string | test(\"http|ftp|\u002Fetc|\u002Fvar|error|fail|pass|key|token\"; \"i\"))\n'\n```\n\n### Step 7: Import Analysis\n\n```bash\n# All imports\nrabin2 -q -j -i binary | jq '.imports[] | {name, lib}'\n\n# Group by capability\nrabin2 -q -j -i binary | jq '\n  .imports | group_by(.lib) |\n  map({lib: .[0].lib, functions: [.[].name]})\n'\n```\n\n## Capability Mapping\n\n| Import Pattern | Capability |\n|----------------|------------|\n| `socket`, `connect`, `send` | Network client |\n| `bind`, `listen`, `accept` | Network server |\n| `open`, `read`, `write` | File I\u002FO |\n| `fork`, `exec*`, `system` | Process spawning |\n| `pthread_*` | Multi-threading |\n| `SSL_*`, `EVP_*` | Cryptography |\n| `dlopen`, `dlsym` | Dynamic loading |\n| `mmap`, `mprotect` | Memory manipulation |\n\n## Output Format\n\nAfter triage, record structured facts:\n\n```json\n{\n  \"artifact\": {\n    \"path\": \"\u002Fpath\u002Fto\u002Fbinary\",\n    \"sha256\": \"abc123...\",\n    \"size_bytes\": 245760\n  },\n  \"identification\": {\n    \"arch\": \"arm\",\n    \"bits\": 32,\n    \"endian\": \"little\",\n    \"os\": \"linux\",\n    \"stripped\": true,\n    \"static\": false\n  },\n  \"abi\": {\n    \"interpreter\": \"\u002Flib\u002Fld-musl-arm.so.1\",\n    \"libc\": \"musl\",\n    \"float_abi\": \"hard\"\n  },\n  \"dependencies\": [\n    \"libcurl.so.4\",\n    \"libssl.so.1.1\",\n    \"libz.so.1\"\n  ],\n  \"capabilities_inferred\": [\n    \"network_client\",\n    \"tls_encryption\",\n    \"compression\"\n  ],\n  \"strings_of_interest\": [\n    {\"value\": \"https:\u002F\u002Fapi.vendor.com\u002Ftelemetry\", \"type\": \"url\"},\n    {\"value\": \"\u002Fetc\u002Fconfig.json\", \"type\": \"path\"}\n  ],\n  \"complexity_estimate\": {\n    \"functions\": \"unknown (stripped)\",\n    \"strings\": 847,\n    \"imports\": 156\n  }\n}\n```\n\n## Knowledge Journaling\n\nAfter triage completes, record findings for episodic memory:\n\n```\n[BINARY-RE:triage] {filename} (sha256: {hash})\n\nIdentification:\n  Architecture: {arch} {bits}-bit {endian}\n  Libc: {glibc|musl|uclibc} ({interpreter_path})\n  Stripped: {yes|no}\n  Size: {bytes}\n\nFACT: Links against {library} (source: rabin2 -l)\nFACT: Contains {N} strings of interest (source: rabin2 -zz)\nFACT: Imports {function} from {library} (source: rabin2 -i)\n\nCapabilities inferred:\n  - {capability_1} (evidence: {import\u002Fstring})\n  - {capability_2} (evidence: {import\u002Fstring})\n\nHYPOTHESIS: {what binary likely does} (confidence: {0.0-1.0})\n\nQUESTION: {open unknown that needs investigation}\n\nNext phase: {static-analysis|dynamic-analysis}\nSysroot needed: {path or \"extract from device\"}\n```\n\n### Example Journal Entry\n\n```\n[BINARY-RE:triage] thermostat_daemon (sha256: a1b2c3d4...)\n\nIdentification:\n  Architecture: ARM 32-bit LE\n  Libc: musl (\u002Flib\u002Fld-musl-arm.so.1)\n  Stripped: yes\n  Size: 153,600 bytes\n\nFACT: Links against libcurl.so.4 (source: rabin2 -l)\nFACT: Links against libssl.so.1.1 (source: rabin2 -l)\nFACT: Contains string \"api.thermco.com\" (source: rabin2 -zz)\nFACT: Imports curl_easy_perform (source: rabin2 -i)\n\nCapabilities inferred:\n  - HTTP client (evidence: libcurl import)\n  - TLS encryption (evidence: libssl import)\n  - Network communication (evidence: URL string)\n\nHYPOTHESIS: Telemetry client that reports to api.thermco.com (confidence: 0.6)\n\nQUESTION: What data does it collect and transmit?\n\nNext phase: static-analysis\nSysroot needed: musl ARM (extract from device or Alpine)\n```\n\n## Decision Points\n\nAfter triage, determine:\n\n1. **Sysroot selection** - Based on arch + libc\n2. **Analysis tool chain** - r2 vs Ghidra vs both\n3. **Dynamic analysis feasibility** - QEMU viability based on arch\n4. **Initial hypotheses** - What does this binary likely do?\n\n## Next Steps\n\n→ Proceed to `binary-re-static-analysis` for function enumeration\n→ Or `binary-re-dynamic-analysis` if behavior observation is priority\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002F2389-research\u002Fbinary-re-triage",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill binary-re-triage",{"tool":59,"command":60},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill binary-re-triage",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill binary-re-triage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002F2389-research\u002Fbinary-re-triage\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"skill-report.json","REFERENCE","参考文档",14444,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002F2389-research\u002Fbinary-re-triage\u002Fskill-report.json",[74,88,98,107,113,120],{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[85,86,87],"model","model hierarchy","model hierarchy skill",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[93],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[95,96,97],"MCP","zoom","zoom mcp",{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[104,105,106,96],"sdk","zoom apps sdk","apps",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[109],{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[118],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[115],{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[122]]