{"id":31904478,"url":"https://github.com/cwksc/my-library-javascript","last_synced_at":"2026-06-09T16:31:05.956Z","repository":{"id":86679466,"uuid":"273212423","full_name":"CWKSC/my-library-javascript","owner":"CWKSC","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-11T13:47:26.000Z","size":53,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-21T17:43:56.663Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cwksc.github.io/my-library-javascript/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CWKSC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-18T10:47:19.000Z","updated_at":"2024-08-11T13:47:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"96ae4401-aa1e-479b-8d9b-16ee239c5fa9","html_url":"https://github.com/CWKSC/my-library-javascript","commit_stats":null,"previous_names":["cwksc/my-library-javascript"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CWKSC/my-library-javascript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CWKSC%2Fmy-library-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CWKSC%2Fmy-library-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CWKSC%2Fmy-library-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CWKSC%2Fmy-library-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CWKSC","download_url":"https://codeload.github.com/CWKSC/my-library-javascript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CWKSC%2Fmy-library-javascript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34116456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-13T13:49:21.773Z","updated_at":"2026-06-09T16:31:05.938Z","avatar_url":"https://github.com/CWKSC.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mylib_js\n\nhttps://cwksc.github.io/my-library-javascript/  (Open console to use)\n\n\u003e [!NOTE]\n\u003e\n\u003e Mainly contain some CTF tool\n\n## Embedded\n\nhttps://cdn.jsdelivr.net/gh/CWKSC/MyLib_js/MyLib_js.js\n\n```html\n\u003cscript type=\"text/javascript\" \n        src=\"https://cdn.jsdelivr.net/gh/CWKSC/MyLib_js/MyLib_js.js\"\n        async\u003e \u003c/script\u003e\n```\n\n## CTFTool\n\n### Function\n\n#### intToHexStringByEndian(input, LSB = false)\n\n```js\nfunction intToHexStringByEndian(input, LSB = false);\n\n(113626824).toString(16)\n-\u003e \"6c5cec8\"\nintToHexStringByEndian(113626824)\n-\u003e \"\\x06\\xc5\\xce\\xc8\"\nintToHexStringByEndian(113626824, true)\n-\u003e \"\\xc8\\xce\\xc5\\x06\"\n```\n\n#### XORTable(target = 'print_r(scandir(\".\")', availableSet = \"0123456789-*|^~\")\n\n```js\nfunction XORTable(\n    target = 'print_r(scandir(\".\")',\n    availableSet = \"0123456789-*|^~\"\n);\n\n// Example\nXORTable('print_r(scandir(\".\")', \"0123456789-*|^~\");\n\n'4'^'8'^'|' = p\n'4'^'8'^'~' = r\n'8'^'-'^'|' = i\n'8'^'*'^'|' = n\n'0'^'8'^'|' = t\n'0'^'1'^'^' = _\n'4'^'8'^'~' = r\n'0'^'2'^'*' = (\n'4'^'9'^'~' = s\n'0'^'-'^'~' = c\n'0'^'-'^'|' = a\n'8'^'*'^'|' = n\n'0'^'*'^'~' = d\n'8'^'-'^'|' = i\n'4'^'8'^'~' = r\n'0'^'2'^'*' = (\n'0'^'8'^'*' = \"\n'0'^'3'^'-' = .\n'0'^'8'^'*' = \"\n'0'^'3'^'*' = )\n'44880040400808400000'^'88-*81829--**-828383'^'|~|||^~*~~||~|~**-**'\n\n-\u003e [Array(20), Array(20), Array(20)]\n0: (20) [\"4\", \"4\", \"8\", \"8\", \"0\", \"0\", \"4\", \"0\", \"4\", \"0\", \"0\", \"8\", \"0\", \"8\", \"4\", \"0\", \"0\", \"0\", \"0\", \"0\"]\n1: (20) [\"8\", \"8\", \"-\", \"*\", \"8\", \"1\", \"8\", \"2\", \"9\", \"-\", \"-\", \"*\", \"*\", \"-\", \"8\", \"2\", \"8\", \"3\", \"8\", \"3\"]\n2: (20) [\"|\", \"~\", \"|\", \"|\", \"|\", \"^\", \"~\", \"*\", \"~\", \"~\", \"|\", \"|\", \"~\", \"|\", \"~\", \"*\", \"*\", \"-\", \"*\", \"*\"]\n```\n\n### Class\n\n#### BruteForceString(n)\n\n```js\nnew CTFTool.BruteForceString(n);\nfunction filter(\n    condition,\n    indexSet,\n    sets = Array(indexSet.length).fill(CTFTool.printableAsciiIntArray)\n);\nfunction display(n = 20);\n\n// Example 1 //\nvar flag = new CTFTool.BruteForceString(6)\n.filter(a =\u003e a[0] + a[1] == 210, [0, 1])\n.filter(a =\u003e a[1] + a[2] == 205, [1, 2])\n.filter(a =\u003e a[2] + a[3] == 200, [2, 3]);\n\nflag.display();\n// T~Oy\n// U}Px\n// V|Qw\n// W{Rv\n// XzSu\n// YyTt\n// ZxUs\n// [wVr\n// \\vWq\n// ]uXp\n// ^tYo\n// _sZn\n// `r[m\n// aq\\l\n// bp]k\n// co^j\n// dn_i\n// em`h\n// flag\n// gkbf\n\nflag.filter(a =\u003e a[0] - a[1] == -6, [0, 2])\nflag.display();\n// flag\n\n// Example 2\nnew CTFTool.BruteForceString(6)\n.filter(a =\u003e a[0] + a[1] == 210, [0, 1])\n.filter(a =\u003e a[1] + a[2] == 205, [1, 2])\n.filter(a =\u003e a[2] + a[3] == 200, [2, 3])\n.filter(a =\u003e a[0] - a[1] == -6, [0, 2])\n.filter(a =\u003e a[0] - a[3] == -1, [0, 3])\n.filter(a =\u003e a[0] + a[4] == 225, [0, 4])\n.filter(a =\u003e a[3] * a[5] == 12875, [3, 5])\n.display();\n// flag{}\n```\n\n#### BruteForceString_backTracking(n)\n\n```js\nnew CTFTool.BruteForceString_backTracking(n);\nfunction add(\n    condition,\n    indexSet = [],\n    sets = Array(indexSet.length).fill(defaultSet)\n);\nfunction run(\n    onlyOneResult = false,\n    showConditionMatch = false, showTarget = false,\n    showNotFind = false\n);\n\n// Example 1 - \"flag\" Brute Force Process\nnew CTFTool.BruteForceString_backTracking(4)\n.add(a =\u003e a[0] + a[1] == 210)\n.add(a =\u003e a[1] + a[2] == 205)\n.add(a =\u003e a[2] + a[3] == 200)\n.add(a =\u003e a[0] - a[1] == -6)\n.run(true, true);\n\n// Condition match [aq  ]\n// Condition match [aq\\ ]\n// Condition match [aq\\l]\n// Condition match [bp  ]\n// Condition match [bp] ]\n// Condition match [bp]k]\n// Condition match [co  ]\n// Condition match [co^ ]\n// Condition match [co^j]\n// Condition match [dn  ]\n// Condition match [dn_ ]\n// Condition match [dn_i]\n// Condition match [em  ]\n// Condition match [em` ]\n// Condition match [em`h]\n// Condition match [fl  ]\n// Condition match [fla ]\n// Condition match [flag]\n// Condition match [flag]\n// [[[ result: [flag] ]]]\n\n\n// Example 2 - DiceCTF rev/babymix as testcase\n// know the result, and just some char is missing (become '\\0') \nvar flag = new CTFTool.BruteForceString_backTracking(22)\nflag.target = \"m1x\\0\\0t_4ll_t\\0ge\\0h3r!1!\"\nflag\n.add(a =\u003e a[12] - a[17] + a[12] + a[8] == 153)\n.add(a =\u003e a[10] + a[21] + (a[19] ^ a[2]) == 217)\n.add(a =\u003e (a[5] ^ a[16]) + a[16] + a[3] + (a[0] ^ a[16]) == 232)\n.add(a =\u003e a[10] + a[3] + a[3] - a[19] + (a[19] ^ a[0]) == 328)\n.add(a =\u003e a[10] - a[8] + a[2] - a[19] == 74)\n.add(a =\u003e a[17] - a[1] + a[4] + a[11] + a[17] - a[9] == 166)\n.add(a =\u003e a[14] + a[10] + a[18] - a[9] + a[5] + a[10] == 413)\n.add(a =\u003e a[5] - a[16] + a[8] - a[12] + a[17] - a[13] + a[11] - a[2] + a[1] + a[21] == 98)\n.add(a =\u003e (a[19] ^ a[13]) + a[6] - a[13] + a[17] - a[11] + (a[16] ^ a[12]) == 85)\n.add(a =\u003e a[4] - a[16] + (a[2] ^ a[7]) == 77)\n.add(a =\u003e a[8] - a[17] + a[14] - a[3] + (a[8] ^ a[14]) + a[5] + a[1] + a[7] + a[10] == 384)\n.add(a =\u003e a[4] - a[0] + a[2] - a[4] + a[15] - a[21] + a[17] + a[2] == 265)\n.add(a =\u003e a[5] - a[18] + a[17] - a[4] + a[15] + a[2] + a[21] - a[18] + a[7] + a[6] == 250)\n.add(a =\u003e a[21] - a[19] + a[7] - a[18] + a[16] - a[21] + (a[12] ^ a[18]) == 75)\n.add(a =\u003e (a[10] ^ a[2]) + a[2] + a[7] + a[20] + a[13] + (a[3] ^ a[16]) + a[9] + a[6] == 621)\n.add(a =\u003e a[8] - a[3] + (a[14] ^ a[2]) + a[11] + a[0] + a[1] - a[19] == 283)\n.add(a =\u003e a[16] - a[14] + (a[0] ^ a[11]) + (a[0] ^ a[14]) + a[13] - a[19] == 106)\n.add(a =\u003e a[19] + a[10] + a[10] + a[19] + a[0] - a[20] + a[3] - a[18] == 297)\n.add(a =\u003e a[0] - a[15] + a[20] + a[18] == 156)\n.add(a =\u003e a[13] - a[8] + a[10] - a[20] + a[3] - a[17] == 85)\n.add(a =\u003e a[3] - a[17] + a[19] + a[4] + (a[12] ^ a[17]) + a[10] - a[2] == 160)\n.add(a =\u003e a[11] - a[21] + a[12] - a[10] == 36)\n.add(a =\u003e (a[18] ^ a[19]) + a[6] - a[16] + (a[5] ^ a[16]) == 102)\n.add(a =\u003e a[6] - a[13] + (a[10] ^ a[15]) + a[21] - a[5] == -48)\n.add(a =\u003e (a[5] ^ a[3]) + a[12] - a[11] + (a[6] ^ a[4]) == 29)\n.add(a =\u003e a[6] - a[14] + a[9] - a[2] + a[8] - a[15] + a[21] - a[11] == -109)\n.add(a =\u003e a[19] - a[7] + a[0] + a[16] + a[11] + a[17] == 361)\n.add(a =\u003e a[3] + a[15] + (a[15] ^ a[19]) == 296)\n.run(true)\n//  [[[ result: [m1x_it_4ll_t0geth3r!1!] ]]]\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwksc%2Fmy-library-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcwksc%2Fmy-library-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwksc%2Fmy-library-javascript/lists"}