icoa-cli 2.19.239 → 2.19.240
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/hint-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(a,b){const v=a0b,c=a();while(!![]){try{const d=parseInt(v(
|
|
1
|
+
function a0a(){const x=['AgLUDcbbueKGDw5YzwfJAgfIBgu','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','mJDnB2j0Cfq','mtiWnZCWnfzyr2nPEG','yxbWBgLJyxrPB24VANnVBG','odrjrLf5D3a','C3rHDhvZ','y3rMzfvYBa','oJKWotaVyxbPl2LJB2eVzxHHBxmV','CxvLC3rPB24','mtuWz0D4teXv','BMv0D29YAYbLCNjVCG','AgLUDcbYzxf1zxn0igzHAwXLzcaO','zgf0yq','ue9tva','l2HPBNq','l2fWAs9Py29Hl2v4yw1ZlW','mtyWmtC0EMvYtNvp','C3vJy2vZCW','AwnVys1JBgK','mZvUy2HQuMS','oti3ndrvDevPuMS','mtjZweTmz3a','DgLTzw91Da','mta2otq0mZfote5YwwG','ANnVBG','C3rYAw5NAwz5','mJa2oty3mgXRB3j1CW','BgfUz3vHz2u','nZK0wfDIwLjJ','zxHHBuLK','y2f0y2G','BwvZC2fNzq','nZuXnZuWwhnQEvLz','Bgv2zwW'];a0a=function(){return x;};return a0a();}(function(a,b){const v=a0b,c=a();while(!![]){try{const d=parseInt(v(0x11e))/(-0x9b7+-0x4*0x74c+0x6*0x67c)*(parseInt(v(0x127))/(0x140+0x439+-0x577*0x1))+-parseInt(v(0x132))/(0x1cbf+0x1bd1+0x388d*-0x1)*(parseInt(v(0x11f))/(0x220a+-0x90f*0x3+-0x6d9*0x1))+parseInt(v(0x12b))/(-0xb0*0x29+0x1752+0x4e3)+-parseInt(v(0x137))/(0x95f+-0x1*0x1ed3+-0x1*-0x157a)*(-parseInt(v(0x11b))/(0x1*0x15e3+0x251e*0x1+-0x3afa*0x1))+parseInt(v(0x130))/(-0x2f3+0xb*0x7a+-0x243)*(-parseInt(v(0x12f))/(-0x1df2+0x224c+-0x451*0x1))+-parseInt(v(0x125))/(-0x18ce+-0x2037+0x390f)+parseInt(v(0x122))/(0x391*-0x7+-0x1264+-0x16*-0x1f9)*(parseInt(v(0x120))/(-0x1a*-0x67+0x1*0x1b59+-0x25c3));if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a0a,-0x1e*-0x3f5e+-0x7f338+0x69e90));import{getConfig as a0c}from'./config.js';function a0b(a,b){a=a-(0xd3e+-0x1*-0xcf6+0x5*-0x505);const c=a0a();let d=c[a];if(a0b['Iacaqx']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x1507+-0x1*-0x119f+0x26a6*-0x1,o,p,q=-0x3*0x1f9+0x1f99+-0x19ae;p=i['charAt'](q++);~p&&(o=n%(0xf72+0x845*0x2+-0x1ff8)?o*(0x39*0x3d+0x14d0*-0x1+0x1*0x77b)+p:p,n++%(-0xd12+0x3a*0x3+0xc68))?l+=String['fromCharCode'](0xa1f*-0x1+0xb1a+0x4&o>>(-(0x2123*0x1+-0x95d+0x17c4*-0x1)*n&-0x12e7+-0x2363+-0x13c*-0x2c)):0x2404+0x248*0xf+-0x463c){p=j['indexOf'](p);}for(let r=-0x1*-0xc82+0x7ad+-0x142f,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xa9*-0x2f+-0x14b*0x8+-0x1*0x149f))['slice'](-(0x18ca*-0x1+-0x18b+-0x1*-0x1a57));}return decodeURIComponent(m);};a0b['CKDOVE']=e,a0b['GqvTOl']={},a0b['Iacaqx']=!![];}const f=c[-0x1*-0x11a0+0x1156+-0x22f6],g=a+f,h=a0b['GqvTOl'][g];return!h?(d=a0b['CKDOVE'](d),a0b['GqvTOl'][g]=d):d=h,d;}export async function requestHint(d){const w=a0b,f=a0c(),g=f[w(0x134)]||w(0x12e),h=d['lang']||f[w(0x126)]||'en',j=d['timeoutMs']??-0x1*-0x1c31+0x964*-0x1+0xc73,k=[g+w(0x13d)+d[w(0x128)]+w(0x13c),g+w(0x135)+d[w(0x128)]+w(0x13c)];let l=null;for(const p of k)try{const q=await fetch(p,{'method':w(0x13b),'headers':{'Content-Type':w(0x131),'User-Agent':w(0x11d)},'body':JSON[w(0x124)]({'token':d['token'],'question':d[w(0x136)],'level':d[w(0x12c)],'lang':h}),'signal':AbortSignal[w(0x121)](j)}),r=await q[w(0x123)]()[w(0x129)](()=>({}));if(!q['ok']||!(0x1f99+0x9b+-0x2033)===r[w(0x11c)]){if(l={'status':q['status'],'message':r?.['message']||w(0x139)+q[w(0x133)]+')'},q[w(0x133)]>=0xf72+0x845*0x2+-0x1e6c&&q[w(0x133)]<0x39*0x3d+0x14d0*-0x1+0x1*0x92f)throw l;continue;}return r[w(0x13a)];}catch(u){if(u&&'object'==typeof u&&w(0x133)in u)throw u;l={'status':0x0,'message':u?.[w(0x12a)]||w(0x138)};}const m={};m[w(0x133)]=0x0,m['message']=w(0x12d);throw l||m;}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ══════════════════════════════════════════════════════════
|
|
2
|
+
# ICOA — Python version lock (single source of truth)
|
|
3
|
+
# ══════════════════════════════════════════════════════════
|
|
4
|
+
# This is a pip *constraints* file (pip install -c constraints.txt ...).
|
|
5
|
+
# It does NOT install anything — it only pins the version of whatever the
|
|
6
|
+
# host setup (src/commands/env.ts) or the sandbox image (docker/Dockerfile)
|
|
7
|
+
# actually requests, INCLUDING transitive dependencies.
|
|
8
|
+
#
|
|
9
|
+
# Why this file exists — anti version-drift:
|
|
10
|
+
# Before this, the same package was pinned in two places (env.ts manifest
|
|
11
|
+
# + Dockerfile) and they drifted (e.g. gmpy2 was >=2.2.0 on the host but
|
|
12
|
+
# ==2.1.5 in the image). Both paths now share THIS file, so a version is
|
|
13
|
+
# declared exactly once. Edit a pin here and both host + container follow.
|
|
14
|
+
#
|
|
15
|
+
# Tested on Python 3.12 (host target 3.12.13 / sandbox ubuntu:24.04 = 3.12).
|
|
16
|
+
# Keep entries == exact. Any change here should be re-verified on WSL +
|
|
17
|
+
# Ubuntu + macOS before publish (see CLAUDE.md cross-platform baseline).
|
|
18
|
+
# ══════════════════════════════════════════════════════════
|
|
19
|
+
|
|
20
|
+
# ── CTF Core ──
|
|
21
|
+
pwntools==4.12.0
|
|
22
|
+
pycryptodome==3.20.0
|
|
23
|
+
z3-solver==4.12.6
|
|
24
|
+
|
|
25
|
+
# ── Web & Network ──
|
|
26
|
+
requests==2.31.0
|
|
27
|
+
beautifulsoup4==4.12.3
|
|
28
|
+
flask==3.0.0
|
|
29
|
+
scapy==2.5.0
|
|
30
|
+
paramiko==3.4.0
|
|
31
|
+
|
|
32
|
+
# ── Crypto & Math ──
|
|
33
|
+
sympy==1.12
|
|
34
|
+
gmpy2==2.3.0 # reconciled: was env.ts >=2.2.0 vs Dockerfile ==2.1.5
|
|
35
|
+
cryptography==42.0.0
|
|
36
|
+
|
|
37
|
+
# ── Binary & RE ──
|
|
38
|
+
capstone==5.0.1
|
|
39
|
+
ropper==1.13.8
|
|
40
|
+
ROPgadget==7.4
|
|
41
|
+
pefile==2023.2.7
|
|
42
|
+
|
|
43
|
+
# ── Data & Forensics ──
|
|
44
|
+
pillow==10.2.0
|
|
45
|
+
numpy==1.26.4
|
|
46
|
+
python-magic==0.4.27
|
|
47
|
+
yara-python==4.5.0
|
|
48
|
+
|
|
49
|
+
# ── Tools ──
|
|
50
|
+
uncompyle6==3.9.1
|
|
51
|
+
pyserial==3.5
|
|
52
|
+
ipython==9.6.0 # was floating; pinned to current 3.12-compatible release
|
|
53
|
+
|
|
54
|
+
# ── Large dependency trees: top-level pinned, transitive deps float ──
|
|
55
|
+
# Pinned to the versions pip resolves on macOS (Apple, Python 3.12). Only the
|
|
56
|
+
# top-level package is locked — their transitive deps (claripy/cle/pyvex/
|
|
57
|
+
# unicorn for angr, etc.) stay free so they can't conflict with the exact
|
|
58
|
+
# pins above (e.g. capstone==5.0.1). Re-resolve on macOS when bumping.
|
|
59
|
+
angr==9.2.217
|
|
60
|
+
sqlmap==1.10.5
|
|
61
|
+
volatility3==2.28.0
|
|
62
|
+
|
|
63
|
+
# ── Intentionally NOT pinned (float to latest) ──
|
|
64
|
+
# Dockerfile-only pip installs with no host equivalent to resolve against.
|
|
65
|
+
# When a drift incident hits one of them, add a verified == pin above.
|
|
66
|
+
# one_gadget
|
|
67
|
+
# seccomp-tools
|
|
68
|
+
# pngcheck
|
|
69
|
+
# rsactftool
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "icoa-cli",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.240",
|
|
4
4
|
"description": "ICOA CLI — The world's first CLI-native cyber & AI security olympiad terminal: AI4CTF (Day 1), CTF4AI (Day 2), VLA4CTF (Pioneer Round — embodied AI)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
11
|
"refs",
|
|
12
|
-
"assets"
|
|
12
|
+
"assets",
|
|
13
|
+
"docker/constraints.txt"
|
|
13
14
|
],
|
|
14
15
|
"scripts": {
|
|
15
16
|
"build": "tsc",
|