icoa-cli 2.9.3 → 2.12.0

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.
Files changed (450) hide show
  1. package/dist/commands/ctf.js +19 -2
  2. package/dist/commands/exam.js +3 -1
  3. package/dist/commands/lang.js +12 -2
  4. package/dist/index.js +11 -5
  5. package/dist/lib/demo-exam.d.ts +10 -0
  6. package/dist/lib/demo-exam.js +54 -0
  7. package/dist/lib/gemini.js +19 -7
  8. package/dist/lib/translation.js +31 -7
  9. package/dist/repl.js +106 -15
  10. package/dist/types/index.d.ts +1 -1
  11. package/dist/types/index.js +1 -1
  12. package/package.json +3 -2
  13. package/translations/ar/1.json +9 -0
  14. package/translations/ar/10.json +9 -0
  15. package/translations/ar/11.json +9 -0
  16. package/translations/ar/12.json +9 -0
  17. package/translations/ar/13.json +9 -0
  18. package/translations/ar/14.json +9 -0
  19. package/translations/ar/15.json +9 -0
  20. package/translations/ar/16.json +9 -0
  21. package/translations/ar/17.json +9 -0
  22. package/translations/ar/18.json +9 -0
  23. package/translations/ar/19.json +9 -0
  24. package/translations/ar/20.json +9 -0
  25. package/translations/ar/21.json +9 -0
  26. package/translations/ar/22.json +9 -0
  27. package/translations/ar/23.json +9 -0
  28. package/translations/ar/24.json +9 -0
  29. package/translations/ar/25.json +9 -0
  30. package/translations/ar/26.json +9 -0
  31. package/translations/ar/27.json +9 -0
  32. package/translations/ar/28.json +9 -0
  33. package/translations/ar/29.json +9 -0
  34. package/translations/ar/30.json +9 -0
  35. package/translations/ar/31.json +9 -0
  36. package/translations/ar/32.json +9 -0
  37. package/translations/ar/33.json +9 -0
  38. package/translations/ar/34.json +9 -0
  39. package/translations/ar/35.json +9 -0
  40. package/translations/ar/36.json +9 -0
  41. package/translations/ar/37.json +9 -0
  42. package/translations/ar/38.json +9 -0
  43. package/translations/ar/39.json +9 -0
  44. package/translations/ar/4.json +9 -0
  45. package/translations/ar/40.json +9 -0
  46. package/translations/ar/41.json +9 -0
  47. package/translations/ar/42.json +9 -0
  48. package/translations/ar/43.json +9 -0
  49. package/translations/ar/44.json +9 -0
  50. package/translations/ar/45.json +9 -0
  51. package/translations/ar/46.json +9 -0
  52. package/translations/ar/47.json +9 -0
  53. package/translations/ar/48.json +9 -0
  54. package/translations/ar/49.json +9 -0
  55. package/translations/ar/5.json +9 -0
  56. package/translations/ar/6.json +9 -0
  57. package/translations/ar/7.json +9 -0
  58. package/translations/ar/8.json +9 -0
  59. package/translations/ar/9.json +9 -0
  60. package/translations/ar/demo.json +332 -0
  61. package/translations/de/1.json +9 -0
  62. package/translations/de/demo.json +332 -0
  63. package/translations/es/1.json +9 -0
  64. package/translations/es/10.json +9 -0
  65. package/translations/es/11.json +9 -0
  66. package/translations/es/12.json +9 -0
  67. package/translations/es/13.json +9 -0
  68. package/translations/es/14.json +9 -0
  69. package/translations/es/15.json +9 -0
  70. package/translations/es/16.json +9 -0
  71. package/translations/es/17.json +9 -0
  72. package/translations/es/18.json +9 -0
  73. package/translations/es/19.json +9 -0
  74. package/translations/es/20.json +9 -0
  75. package/translations/es/21.json +9 -0
  76. package/translations/es/22.json +9 -0
  77. package/translations/es/23.json +9 -0
  78. package/translations/es/24.json +9 -0
  79. package/translations/es/25.json +9 -0
  80. package/translations/es/26.json +9 -0
  81. package/translations/es/27.json +9 -0
  82. package/translations/es/28.json +9 -0
  83. package/translations/es/29.json +9 -0
  84. package/translations/es/30.json +9 -0
  85. package/translations/es/31.json +9 -0
  86. package/translations/es/32.json +9 -0
  87. package/translations/es/33.json +9 -0
  88. package/translations/es/34.json +9 -0
  89. package/translations/es/35.json +9 -0
  90. package/translations/es/36.json +9 -0
  91. package/translations/es/37.json +9 -0
  92. package/translations/es/38.json +9 -0
  93. package/translations/es/39.json +9 -0
  94. package/translations/es/4.json +9 -0
  95. package/translations/es/40.json +9 -0
  96. package/translations/es/41.json +9 -0
  97. package/translations/es/42.json +9 -0
  98. package/translations/es/43.json +9 -0
  99. package/translations/es/44.json +9 -0
  100. package/translations/es/45.json +9 -0
  101. package/translations/es/46.json +9 -0
  102. package/translations/es/47.json +9 -0
  103. package/translations/es/48.json +9 -0
  104. package/translations/es/49.json +9 -0
  105. package/translations/es/5.json +9 -0
  106. package/translations/es/6.json +9 -0
  107. package/translations/es/7.json +9 -0
  108. package/translations/es/8.json +9 -0
  109. package/translations/es/9.json +9 -0
  110. package/translations/es/demo.json +332 -0
  111. package/translations/fr/1.json +9 -0
  112. package/translations/fr/10.json +9 -0
  113. package/translations/fr/11.json +9 -0
  114. package/translations/fr/12.json +9 -0
  115. package/translations/fr/13.json +9 -0
  116. package/translations/fr/14.json +9 -0
  117. package/translations/fr/15.json +9 -0
  118. package/translations/fr/16.json +9 -0
  119. package/translations/fr/17.json +9 -0
  120. package/translations/fr/18.json +9 -0
  121. package/translations/fr/19.json +9 -0
  122. package/translations/fr/20.json +9 -0
  123. package/translations/fr/21.json +9 -0
  124. package/translations/fr/22.json +9 -0
  125. package/translations/fr/23.json +9 -0
  126. package/translations/fr/24.json +9 -0
  127. package/translations/fr/25.json +9 -0
  128. package/translations/fr/26.json +9 -0
  129. package/translations/fr/27.json +9 -0
  130. package/translations/fr/28.json +9 -0
  131. package/translations/fr/29.json +9 -0
  132. package/translations/fr/30.json +9 -0
  133. package/translations/fr/31.json +9 -0
  134. package/translations/fr/32.json +9 -0
  135. package/translations/fr/33.json +9 -0
  136. package/translations/fr/34.json +9 -0
  137. package/translations/fr/35.json +9 -0
  138. package/translations/fr/36.json +9 -0
  139. package/translations/fr/37.json +9 -0
  140. package/translations/fr/38.json +9 -0
  141. package/translations/fr/39.json +9 -0
  142. package/translations/fr/4.json +9 -0
  143. package/translations/fr/40.json +9 -0
  144. package/translations/fr/41.json +9 -0
  145. package/translations/fr/42.json +9 -0
  146. package/translations/fr/43.json +9 -0
  147. package/translations/fr/44.json +9 -0
  148. package/translations/fr/45.json +9 -0
  149. package/translations/fr/46.json +9 -0
  150. package/translations/fr/47.json +9 -0
  151. package/translations/fr/48.json +9 -0
  152. package/translations/fr/49.json +9 -0
  153. package/translations/fr/5.json +9 -0
  154. package/translations/fr/6.json +9 -0
  155. package/translations/fr/7.json +9 -0
  156. package/translations/fr/8.json +9 -0
  157. package/translations/fr/9.json +9 -0
  158. package/translations/fr/demo.json +332 -0
  159. package/translations/hi/1.json +9 -0
  160. package/translations/hi/10.json +9 -0
  161. package/translations/hi/11.json +9 -0
  162. package/translations/hi/12.json +9 -0
  163. package/translations/hi/13.json +9 -0
  164. package/translations/hi/14.json +9 -0
  165. package/translations/hi/15.json +9 -0
  166. package/translations/hi/16.json +9 -0
  167. package/translations/hi/17.json +9 -0
  168. package/translations/hi/18.json +9 -0
  169. package/translations/hi/19.json +9 -0
  170. package/translations/hi/20.json +9 -0
  171. package/translations/hi/21.json +9 -0
  172. package/translations/hi/22.json +9 -0
  173. package/translations/hi/23.json +9 -0
  174. package/translations/hi/24.json +9 -0
  175. package/translations/hi/25.json +9 -0
  176. package/translations/hi/26.json +9 -0
  177. package/translations/hi/27.json +9 -0
  178. package/translations/hi/28.json +9 -0
  179. package/translations/hi/29.json +9 -0
  180. package/translations/hi/30.json +9 -0
  181. package/translations/hi/31.json +9 -0
  182. package/translations/hi/32.json +9 -0
  183. package/translations/hi/33.json +9 -0
  184. package/translations/hi/34.json +9 -0
  185. package/translations/hi/35.json +9 -0
  186. package/translations/hi/36.json +9 -0
  187. package/translations/hi/37.json +9 -0
  188. package/translations/hi/38.json +9 -0
  189. package/translations/hi/39.json +9 -0
  190. package/translations/hi/4.json +9 -0
  191. package/translations/hi/40.json +9 -0
  192. package/translations/hi/41.json +9 -0
  193. package/translations/hi/42.json +9 -0
  194. package/translations/hi/43.json +9 -0
  195. package/translations/hi/44.json +9 -0
  196. package/translations/hi/45.json +9 -0
  197. package/translations/hi/46.json +9 -0
  198. package/translations/hi/47.json +9 -0
  199. package/translations/hi/48.json +9 -0
  200. package/translations/hi/49.json +9 -0
  201. package/translations/hi/5.json +9 -0
  202. package/translations/hi/6.json +9 -0
  203. package/translations/hi/7.json +9 -0
  204. package/translations/hi/8.json +9 -0
  205. package/translations/hi/9.json +9 -0
  206. package/translations/hi/demo.json +332 -0
  207. package/translations/id/demo.json +332 -0
  208. package/translations/ja/1.json +9 -0
  209. package/translations/ja/10.json +9 -0
  210. package/translations/ja/11.json +9 -0
  211. package/translations/ja/12.json +9 -0
  212. package/translations/ja/13.json +9 -0
  213. package/translations/ja/14.json +9 -0
  214. package/translations/ja/15.json +9 -0
  215. package/translations/ja/16.json +9 -0
  216. package/translations/ja/17.json +9 -0
  217. package/translations/ja/18.json +9 -0
  218. package/translations/ja/19.json +9 -0
  219. package/translations/ja/20.json +9 -0
  220. package/translations/ja/21.json +9 -0
  221. package/translations/ja/22.json +9 -0
  222. package/translations/ja/23.json +9 -0
  223. package/translations/ja/24.json +9 -0
  224. package/translations/ja/25.json +9 -0
  225. package/translations/ja/26.json +9 -0
  226. package/translations/ja/27.json +9 -0
  227. package/translations/ja/28.json +9 -0
  228. package/translations/ja/29.json +9 -0
  229. package/translations/ja/30.json +9 -0
  230. package/translations/ja/31.json +9 -0
  231. package/translations/ja/32.json +9 -0
  232. package/translations/ja/33.json +9 -0
  233. package/translations/ja/34.json +9 -0
  234. package/translations/ja/35.json +9 -0
  235. package/translations/ja/36.json +9 -0
  236. package/translations/ja/37.json +9 -0
  237. package/translations/ja/38.json +9 -0
  238. package/translations/ja/39.json +9 -0
  239. package/translations/ja/4.json +9 -0
  240. package/translations/ja/40.json +9 -0
  241. package/translations/ja/41.json +9 -0
  242. package/translations/ja/42.json +9 -0
  243. package/translations/ja/43.json +9 -0
  244. package/translations/ja/44.json +9 -0
  245. package/translations/ja/45.json +9 -0
  246. package/translations/ja/46.json +9 -0
  247. package/translations/ja/47.json +9 -0
  248. package/translations/ja/48.json +9 -0
  249. package/translations/ja/49.json +9 -0
  250. package/translations/ja/5.json +9 -0
  251. package/translations/ja/6.json +9 -0
  252. package/translations/ja/7.json +9 -0
  253. package/translations/ja/8.json +9 -0
  254. package/translations/ja/9.json +9 -0
  255. package/translations/ja/demo.json +332 -0
  256. package/translations/ko/1.json +9 -0
  257. package/translations/ko/10.json +9 -0
  258. package/translations/ko/11.json +9 -0
  259. package/translations/ko/12.json +9 -0
  260. package/translations/ko/13.json +9 -0
  261. package/translations/ko/14.json +9 -0
  262. package/translations/ko/15.json +9 -0
  263. package/translations/ko/16.json +9 -0
  264. package/translations/ko/17.json +9 -0
  265. package/translations/ko/18.json +9 -0
  266. package/translations/ko/19.json +9 -0
  267. package/translations/ko/20.json +9 -0
  268. package/translations/ko/21.json +9 -0
  269. package/translations/ko/22.json +9 -0
  270. package/translations/ko/23.json +9 -0
  271. package/translations/ko/24.json +9 -0
  272. package/translations/ko/25.json +9 -0
  273. package/translations/ko/26.json +9 -0
  274. package/translations/ko/27.json +9 -0
  275. package/translations/ko/28.json +9 -0
  276. package/translations/ko/29.json +9 -0
  277. package/translations/ko/30.json +9 -0
  278. package/translations/ko/31.json +9 -0
  279. package/translations/ko/32.json +9 -0
  280. package/translations/ko/33.json +9 -0
  281. package/translations/ko/34.json +9 -0
  282. package/translations/ko/35.json +9 -0
  283. package/translations/ko/36.json +9 -0
  284. package/translations/ko/37.json +9 -0
  285. package/translations/ko/38.json +9 -0
  286. package/translations/ko/39.json +9 -0
  287. package/translations/ko/4.json +9 -0
  288. package/translations/ko/40.json +9 -0
  289. package/translations/ko/41.json +9 -0
  290. package/translations/ko/42.json +9 -0
  291. package/translations/ko/43.json +9 -0
  292. package/translations/ko/44.json +9 -0
  293. package/translations/ko/45.json +9 -0
  294. package/translations/ko/46.json +9 -0
  295. package/translations/ko/47.json +9 -0
  296. package/translations/ko/48.json +9 -0
  297. package/translations/ko/49.json +9 -0
  298. package/translations/ko/5.json +9 -0
  299. package/translations/ko/6.json +9 -0
  300. package/translations/ko/7.json +9 -0
  301. package/translations/ko/8.json +9 -0
  302. package/translations/ko/9.json +9 -0
  303. package/translations/ko/demo.json +332 -0
  304. package/translations/pt/1.json +9 -0
  305. package/translations/pt/10.json +9 -0
  306. package/translations/pt/11.json +9 -0
  307. package/translations/pt/12.json +9 -0
  308. package/translations/pt/13.json +9 -0
  309. package/translations/pt/14.json +9 -0
  310. package/translations/pt/15.json +9 -0
  311. package/translations/pt/16.json +9 -0
  312. package/translations/pt/17.json +9 -0
  313. package/translations/pt/18.json +9 -0
  314. package/translations/pt/19.json +9 -0
  315. package/translations/pt/20.json +9 -0
  316. package/translations/pt/21.json +9 -0
  317. package/translations/pt/22.json +9 -0
  318. package/translations/pt/23.json +9 -0
  319. package/translations/pt/24.json +9 -0
  320. package/translations/pt/25.json +9 -0
  321. package/translations/pt/26.json +9 -0
  322. package/translations/pt/27.json +9 -0
  323. package/translations/pt/28.json +9 -0
  324. package/translations/pt/29.json +9 -0
  325. package/translations/pt/30.json +9 -0
  326. package/translations/pt/31.json +9 -0
  327. package/translations/pt/32.json +9 -0
  328. package/translations/pt/33.json +9 -0
  329. package/translations/pt/34.json +9 -0
  330. package/translations/pt/35.json +9 -0
  331. package/translations/pt/36.json +9 -0
  332. package/translations/pt/37.json +9 -0
  333. package/translations/pt/38.json +9 -0
  334. package/translations/pt/39.json +9 -0
  335. package/translations/pt/4.json +9 -0
  336. package/translations/pt/40.json +9 -0
  337. package/translations/pt/41.json +9 -0
  338. package/translations/pt/42.json +9 -0
  339. package/translations/pt/43.json +9 -0
  340. package/translations/pt/44.json +9 -0
  341. package/translations/pt/45.json +9 -0
  342. package/translations/pt/46.json +9 -0
  343. package/translations/pt/47.json +9 -0
  344. package/translations/pt/48.json +9 -0
  345. package/translations/pt/49.json +9 -0
  346. package/translations/pt/5.json +9 -0
  347. package/translations/pt/6.json +9 -0
  348. package/translations/pt/7.json +9 -0
  349. package/translations/pt/8.json +9 -0
  350. package/translations/pt/9.json +9 -0
  351. package/translations/pt/demo.json +332 -0
  352. package/translations/ru/1.json +9 -0
  353. package/translations/ru/10.json +9 -0
  354. package/translations/ru/11.json +9 -0
  355. package/translations/ru/12.json +9 -0
  356. package/translations/ru/13.json +9 -0
  357. package/translations/ru/14.json +9 -0
  358. package/translations/ru/15.json +9 -0
  359. package/translations/ru/16.json +9 -0
  360. package/translations/ru/17.json +9 -0
  361. package/translations/ru/18.json +9 -0
  362. package/translations/ru/19.json +9 -0
  363. package/translations/ru/20.json +9 -0
  364. package/translations/ru/21.json +9 -0
  365. package/translations/ru/22.json +9 -0
  366. package/translations/ru/23.json +9 -0
  367. package/translations/ru/24.json +9 -0
  368. package/translations/ru/25.json +9 -0
  369. package/translations/ru/26.json +9 -0
  370. package/translations/ru/27.json +9 -0
  371. package/translations/ru/28.json +9 -0
  372. package/translations/ru/29.json +9 -0
  373. package/translations/ru/30.json +9 -0
  374. package/translations/ru/31.json +9 -0
  375. package/translations/ru/32.json +9 -0
  376. package/translations/ru/33.json +9 -0
  377. package/translations/ru/34.json +9 -0
  378. package/translations/ru/35.json +9 -0
  379. package/translations/ru/36.json +9 -0
  380. package/translations/ru/37.json +9 -0
  381. package/translations/ru/38.json +9 -0
  382. package/translations/ru/39.json +9 -0
  383. package/translations/ru/4.json +9 -0
  384. package/translations/ru/40.json +9 -0
  385. package/translations/ru/41.json +9 -0
  386. package/translations/ru/42.json +9 -0
  387. package/translations/ru/43.json +9 -0
  388. package/translations/ru/44.json +9 -0
  389. package/translations/ru/45.json +9 -0
  390. package/translations/ru/46.json +9 -0
  391. package/translations/ru/47.json +9 -0
  392. package/translations/ru/48.json +9 -0
  393. package/translations/ru/49.json +9 -0
  394. package/translations/ru/5.json +9 -0
  395. package/translations/ru/6.json +9 -0
  396. package/translations/ru/7.json +9 -0
  397. package/translations/ru/8.json +9 -0
  398. package/translations/ru/9.json +9 -0
  399. package/translations/ru/demo.json +332 -0
  400. package/translations/th/demo.json +332 -0
  401. package/translations/tr/demo.json +332 -0
  402. package/translations/vi/demo.json +332 -0
  403. package/translations/zh/1.json +9 -0
  404. package/translations/zh/10.json +9 -0
  405. package/translations/zh/11.json +9 -0
  406. package/translations/zh/12.json +9 -0
  407. package/translations/zh/13.json +9 -0
  408. package/translations/zh/14.json +9 -0
  409. package/translations/zh/15.json +9 -0
  410. package/translations/zh/16.json +9 -0
  411. package/translations/zh/17.json +9 -0
  412. package/translations/zh/18.json +9 -0
  413. package/translations/zh/19.json +9 -0
  414. package/translations/zh/20.json +9 -0
  415. package/translations/zh/21.json +9 -0
  416. package/translations/zh/22.json +9 -0
  417. package/translations/zh/23.json +9 -0
  418. package/translations/zh/24.json +9 -0
  419. package/translations/zh/25.json +9 -0
  420. package/translations/zh/26.json +9 -0
  421. package/translations/zh/27.json +9 -0
  422. package/translations/zh/28.json +9 -0
  423. package/translations/zh/29.json +9 -0
  424. package/translations/zh/30.json +9 -0
  425. package/translations/zh/31.json +9 -0
  426. package/translations/zh/32.json +9 -0
  427. package/translations/zh/33.json +9 -0
  428. package/translations/zh/34.json +9 -0
  429. package/translations/zh/35.json +9 -0
  430. package/translations/zh/36.json +9 -0
  431. package/translations/zh/37.json +9 -0
  432. package/translations/zh/38.json +9 -0
  433. package/translations/zh/39.json +9 -0
  434. package/translations/zh/4.json +9 -0
  435. package/translations/zh/40.json +9 -0
  436. package/translations/zh/41.json +9 -0
  437. package/translations/zh/42.json +9 -0
  438. package/translations/zh/43.json +9 -0
  439. package/translations/zh/44.json +9 -0
  440. package/translations/zh/45.json +9 -0
  441. package/translations/zh/46.json +9 -0
  442. package/translations/zh/47.json +9 -0
  443. package/translations/zh/48.json +9 -0
  444. package/translations/zh/49.json +9 -0
  445. package/translations/zh/5.json +9 -0
  446. package/translations/zh/6.json +9 -0
  447. package/translations/zh/7.json +9 -0
  448. package/translations/zh/8.json +9 -0
  449. package/translations/zh/9.json +9 -0
  450. package/translations/zh/demo.json +332 -0
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 37,
3
+ "name": "Doors 2",
4
+ "category": "rev",
5
+ "translation": "Твой друг очень благодарен, что ты нашел тот flag, о котором они забыли!\n\nОни потратили некоторое время, чтобы спрятать остальные flags и надеются, что ты не сможешь до них добраться. Как думаешь, сможешь ли ты реверснуть их key validation function?\nСгенерируй свой собственный licence key для их program и получи flag!",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:15.571Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 38,
3
+ "name": "Doors",
4
+ "category": "rev",
5
+ "translation": "Твой друг прислал тебе прототип программы для верификации ключей безопасности, которую он пишет на C#. Здесь есть несколько флагов, но можешь ли ты помочь, найдя тот флаг, который он забыл зашифровать?",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:23.602Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 39,
3
+ "name": "Too Many Flags",
4
+ "category": "rev",
5
+ "translation": "Мы нашли этот файл, полный флагов, но мы не знаем, какой из них правильный! Сможете ли вы выяснить, как были сгенерированы эти флаги, и найти правильный?",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:31.521Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 4,
3
+ "name": "#InMyLibraryClashingEra",
4
+ "category": "crypto",
5
+ "translation": "Я создал(а) до смешного простую? hash function. Найдите clash, и я дам вам библиотеку, к которой можно подъехать. То есть, если вы сможете прочитать то, что у меня есть. Моя вина, я выпил(а) 32 ml of Base model Dasani перед тем, как это сделать.\n\nВозможно, понадобится pycryptodome, так что установите ее заранее.\n\nНе забудьте заключить флаг в `pecan{flag}`.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:14.376Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 40,
3
+ "name": "Xanarto",
4
+ "category": "rev",
5
+ "translation": "Я нашел этого парня на LinkedIn, который утверждал, что создал uncrackable algorithm. Опровергни его. Я прикрепил post в виде image.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:41.740Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 41,
3
+ "name": "Cheese",
4
+ "category": "steg",
5
+ "translation": "Для этого испытания необходимо углубиться в предоставленный image file в рамках проклятия сыра, используя различные tools, чтобы обнаружить то, что некоторые отбросили бы как совершенно случайный text.\n\nЕсли бы только эту string можно было как-то манипулировать или преобразовать, это могло бы быть нашей единственной надеждой найти flag, чтобы снять проклятие сыра раз и навсегда......\n\nEnjoy :)",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:48.346Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 42,
3
+ "name": "Dogs Always Know",
4
+ "category": "steg",
5
+ "translation": "У собак есть нюх на секреты — зарытые глубоко, там, где никто не догадается искать. Доверьтесь их инстинктам; иногда то, что скрыто, находится не на виду, а в костях под поверхностью.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:51.746Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 43,
3
+ "name": "In the fine print",
4
+ "category": "steg",
5
+ "translation": "В неустановленном месте был обнаружен набор распечатанных документов. Они выглядят совершенно невинно, но что-то не так...",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:55.448Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 44,
3
+ "name": "In the words of Taylor",
4
+ "category": "steg",
5
+ "translation": "Я напишу твое имя... или, по крайней мере, flag.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:57.415Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 45,
3
+ "name": "Layer Cake",
4
+ "category": "steg",
5
+ "translation": "Не все торты — ложь. В этом есть слои!\nThe flag format is `pecan{crackedwords}`",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:07:59.922Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 46,
3
+ "name": "Looking through the sound",
4
+ "category": "steg",
5
+ "translation": "Не каждое сообщение передается на звуковых волнах. Вам придется *взглянуть* сквозь шум. Пусть ваши глаза слушают, и пусть музыка выговорит это для вас. Примечание: Вам *не* нужно слушать audio, чтобы выполнить это challenge.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:08:07.660Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 47,
3
+ "name": "Nothing to See Here",
4
+ "category": "steg",
5
+ "translation": "Вот небольшой рисунок, который я сделал. В нём, правда, ничего не видно, как вы видите.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:08:13.555Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 48,
3
+ "name": "Stuck in Your Head",
4
+ "category": "steg",
5
+ "translation": "Ты должен послушать мою любимую песню и рассказать мне 21 причину, почему она лучшая!",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:08:19.742Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 49,
3
+ "name": "TLSB",
4
+ "category": "steg",
5
+ "translation": "Возможно, вы слышали о Least Significant Bit (LSB) Steganography, но слышали ли вы когда-нибудь о Third Least Significant Bit (TLSB) Steganography? (Надеюсь, нет, учитывая, что я придумал это для этого задания). (Подсказка: Я спрятал секрет в image byte order)",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:08:28.976Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 5,
3
+ "name": "Multi-layer",
4
+ "category": "crypto",
5
+ "translation": "У этой штуки есть слои.\n\n```\nZnJpcmEgbyBmY25wciBmcmlyYSBhdmFyIGZjbnByIGZ2ayBzIGZjbnByIGZyaXJhIHN2aXIgZmNucHIgZ2jiIG1yZWIgZmNucHIgZnZrIGZyaXJhIGZjbnByIGZ2ayBzIGZjbnByIGZyaXJhIHNiaGUgZmNucHIgZ2jiIG1yZWIgZmNucHIgZnJpcmEgc2JoZSBmY25wciBmdmsgcnZ0dWcgZmNucHIgZnZrIGF2YXIgZmNucHIgZnJpcmEgZ3VlcnIgZmNucHIgZnJpcmEgcQ==\n```\n\nПомните, что формат флага: `pecan{flag_goes_here}`",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:21.146Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 6,
3
+ "name": "Mysteries of the Tomb",
4
+ "category": "crypto",
5
+ "translation": "В затененных глубинах Долины Царей исследователи обнаружили гробницу, давно утерянную во времени. В ее сердце покоится древняя каменная табличка, тщательно выгравированная таинственными глифами — пирамида секретов, созданная преданными писцами, охраняющими самое священное сокровище фараона.\n\nБлагодаря тщательному переводу, появляется повторяющаяся легенда: эта табличка хранит ключ к несметной силе. Вооружившись своими усердными заметками и растущими знаниями символов, вы начинаете разгадывать ее загадочное послание.\n\nК настоящему моменту надпись на вершине таблички гласит:\n\"Чтобы раскрыть истину, прочтите камни на первом свете рассвета, прослеживая путь от вершины до зыбучих песков.\"\n\nFormat: `pecan{flag}`",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:27.503Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 7,
3
+ "name": "RSA101",
4
+ "category": "crypto",
5
+ "translation": "Мы получили сообщение, которое, как мы считаем, зашифровано с помощью RSA, но primes в public key могут быть слабыми. Найдите factors и decipher сообщение.\n\n```\nn = 914224879713534891752745051672415462330144197757968187295993\ne = 17\nciphertext = 152293808340616594229073242267037730353433147091103189533666\n```",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:34.896Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 8,
3
+ "name": "Sheet Music Cipher",
4
+ "category": "crypto",
5
+ "translation": "Никто никогда не узнает, что я использовал(а) Compound Motivic Musical Cipher. Я могу просто проигрывать музыку вслух и отправлять сообщения так, что никто ничего не заподозрит.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:41.396Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 9,
3
+ "name": "That's Not My Unicode",
4
+ "category": "crypto",
5
+ "translation": "Эти странные символы кажутся древними, но они, возможно, пытаются рассказать вам нечто более современное. Соберите сообщение, скрытое на виду — иногда то, что выглядит старым, может говорить на новом языке.",
6
+ "lang": "ru",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:03:46.932Z"
9
+ }
@@ -0,0 +1,332 @@
1
+ [
2
+ {
3
+ "number": 1,
4
+ "text": "Какой алгоритм НЕ является симметричным шифром?",
5
+ "category": "Cryptography",
6
+ "options": {
7
+ "A": "AES",
8
+ "B": "RSA",
9
+ "C": "DES",
10
+ "D": "Blowfish"
11
+ }
12
+ },
13
+ {
14
+ "number": 2,
15
+ "text": "Что эксплуатирует SQL injection?",
16
+ "category": "Web Security",
17
+ "options": {
18
+ "A": "Переполнение буфера в веб-сервере",
19
+ "B": "Неочищенный пользовательский ввод в запросах к базе данных",
20
+ "C": "Слабые алгоритмы шифрования",
21
+ "D": "Неправильно сконфигурированные правила файрвола"
22
+ }
23
+ },
24
+ {
25
+ "number": 3,
26
+ "text": "Какой код состояния HTTP указывает на «Forbidden»?",
27
+ "category": "Web Security",
28
+ "options": {
29
+ "A": "401",
30
+ "B": "404",
31
+ "C": "403",
32
+ "D": "500"
33
+ }
34
+ },
35
+ {
36
+ "number": 4,
37
+ "text": "Какова основная цель nonce в криптографии?",
38
+ "category": "Cryptography",
39
+ "options": {
40
+ "A": "Шифровать хранящиеся данные",
41
+ "B": "Предотвращать атаки повтора",
42
+ "C": "Генерировать случайные пароли",
43
+ "D": "Сжимать данные перед шифрованием"
44
+ }
45
+ },
46
+ {
47
+ "number": 5,
48
+ "text": "Какой инструмент обычно используется для захвата сетевых пакетов?",
49
+ "category": "Network",
50
+ "options": {
51
+ "A": "Burp Suite",
52
+ "B": "Ghidra",
53
+ "C": "Wireshark",
54
+ "D": "John the Ripper"
55
+ }
56
+ },
57
+ {
58
+ "number": 6,
59
+ "text": "Как расшифровывается XSS в кибербезопасности?",
60
+ "category": "Web Security",
61
+ "options": {
62
+ "A": "Расширенная система безопасности",
63
+ "B": "Межсайтовый скриптинг",
64
+ "C": "XML Защищенный сокет",
65
+ "D": "Межсерверный обмен"
66
+ }
67
+ },
68
+ {
69
+ "number": 7,
70
+ "text": "Какова основная функция файрвола?",
71
+ "category": "Network",
72
+ "options": {
73
+ "A": "Шифровать сетевые данные",
74
+ "B": "Фильтровать сетевой трафик на основе правил безопасности",
75
+ "C": "Обнаруживать вирусы в файлах",
76
+ "D": "Ускорять интернет-соединение"
77
+ }
78
+ },
79
+ {
80
+ "number": 8,
81
+ "text": "Какой тип malware маскируется под легитимное программное обеспечение?",
82
+ "category": "Malware",
83
+ "options": {
84
+ "A": "Worm",
85
+ "B": "Ransomware",
86
+ "C": "Trojan",
87
+ "D": "Adware"
88
+ }
89
+ },
90
+ {
91
+ "number": 9,
92
+ "text": "Вопрос: Какой протокол обеспечивает безопасное соединение в интернете?",
93
+ "category": "Network",
94
+ "options": {
95
+ "A": "HTTP",
96
+ "B": "FTP",
97
+ "C": "HTTPS",
98
+ "D": "SMTP"
99
+ }
100
+ },
101
+ {
102
+ "number": 10,
103
+ "text": "Что такое криптографический хеш?",
104
+ "category": "Cryptography",
105
+ "options": {
106
+ "A": "Обратимый ключ шифрования",
107
+ "B": "Односторонняя функция, производящая дайджест фиксированного размера",
108
+ "C": "Протокол аутентификации",
109
+ "D": "Тип цифровой подписи"
110
+ }
111
+ },
112
+ {
113
+ "number": 11,
114
+ "text": "Какой инструмент используется для бинарного анализа?",
115
+ "category": "Reverse Engineering",
116
+ "options": {
117
+ "A": "Nmap",
118
+ "B": "SQLMap",
119
+ "C": "Ghidra",
120
+ "D": "Nikto"
121
+ }
122
+ },
123
+ {
124
+ "number": 12,
125
+ "text": "Какая атака манипулирует DNS-запросами для перенаправления трафика?",
126
+ "category": "Network",
127
+ "options": {
128
+ "A": "Фишинг",
129
+ "B": "DNS Spoofing",
130
+ "C": "SQL Injection",
131
+ "D": "Brute Force"
132
+ }
133
+ },
134
+ {
135
+ "number": 13,
136
+ "text": "Какой стандартный порт для SSH?",
137
+ "category": "Network",
138
+ "options": {
139
+ "A": "21",
140
+ "B": "22",
141
+ "C": "80",
142
+ "D": "443"
143
+ }
144
+ },
145
+ {
146
+ "number": 14,
147
+ "text": "Что такое двухфакторная аутентификация (2FA)?",
148
+ "category": "Authentication",
149
+ "options": {
150
+ "A": "Использование двух разных паролей",
151
+ "B": "Проверка личности с помощью двух различных типов учетных данных",
152
+ "C": "Двойное шифрование данных",
153
+ "D": "Подключение через две сети"
154
+ }
155
+ },
156
+ {
157
+ "number": 15,
158
+ "text": "Какая команда Linux показывает открытые порты в системе?",
159
+ "category": "Linux",
160
+ "options": {
161
+ "A": "ls -la",
162
+ "B": "netstat -tulpn",
163
+ "C": "chmod 777",
164
+ "D": "cat /etc/passwd"
165
+ }
166
+ },
167
+ {
168
+ "number": 16,
169
+ "text": "Что такое атака Man-in-the-Middle (MitM)?",
170
+ "category": "Network",
171
+ "options": {
172
+ "A": "Доступ к серверу без авторизации",
173
+ "B": "Перехват и изменение коммуникаций между двумя сторонами",
174
+ "C": "Отправка множества запросов для перегрузки сервера",
175
+ "D": "Подбор паролей brute force"
176
+ }
177
+ },
178
+ {
179
+ "number": 17,
180
+ "text": "Какой из перечисленных является алгоритмом хеширования?",
181
+ "category": "Cryptography",
182
+ "options": {
183
+ "A": "AES-256",
184
+ "B": "SHA-256",
185
+ "C": "RSA-2048",
186
+ "D": "Diffie-Hellman"
187
+ }
188
+ },
189
+ {
190
+ "number": 18,
191
+ "text": "Что такое принцип наименьших привилегий?",
192
+ "category": "Security",
193
+ "options": {
194
+ "A": "Предоставить root доступ всем пользователям",
195
+ "B": "Предоставлять только те разрешения, которые необходимы для выполнения задачи",
196
+ "C": "Использовать максимально короткий пароль",
197
+ "D": "Отключить все firewalls"
198
+ }
199
+ },
200
+ {
201
+ "number": 19,
202
+ "text": "Какой инструмент часто используется для сканирования портов?",
203
+ "category": "Network",
204
+ "options": {
205
+ "A": "Wireshark",
206
+ "B": "Metasploit",
207
+ "C": "Nmap",
208
+ "D": "Hashcat"
209
+ }
210
+ },
211
+ {
212
+ "number": 20,
213
+ "text": "Что такое ransomware?",
214
+ "category": "Malware",
215
+ "options": {
216
+ "A": "Программное обеспечение, которое показывает нежелательную рекламу",
217
+ "B": "Программное обеспечение, которое шифрует файлы и требует выкуп для дешифровки",
218
+ "C": "Программное обеспечение, которое записывает нажатия клавиш",
219
+ "D": "Программное обеспечение, которое реплицируется по сетям"
220
+ }
221
+ },
222
+ {
223
+ "number": 21,
224
+ "text": "В чем разница между симметричным и асимметричным шифрованием?",
225
+ "category": "Cryptography",
226
+ "options": {
227
+ "A": "Симметричное использует один и тот же ключ для шифрования и дешифрования; асимметричное использует два разных ключа",
228
+ "B": "Симметричное медленнее, чем асимметричное",
229
+ "C": "Асимметричное работает только с небольшими файлами",
230
+ "D": "Нет существенной разницы"
231
+ }
232
+ },
233
+ {
234
+ "number": 22,
235
+ "text": "Какая уязвимость позволяет выполнение произвольного кода на веб-сервере?",
236
+ "category": "Web Security",
237
+ "options": {
238
+ "A": "CSRF",
239
+ "B": "Remote Code Execution (RCE)",
240
+ "C": "Clickjacking",
241
+ "D": "Open Redirect"
242
+ }
243
+ },
244
+ {
245
+ "number": 23,
246
+ "text": "Что такое OWASP?",
247
+ "category": "Security",
248
+ "options": {
249
+ "A": "Операционная система безопасности",
250
+ "B": "Организация, которая публикует стандарты и руководства по веб-безопасности",
251
+ "C": "Тип межсетевого экрана",
252
+ "D": "Язык программирования для безопасности"
253
+ }
254
+ },
255
+ {
256
+ "number": 24,
257
+ "text": "Какая команда Linux изменяет права доступа к файлам?",
258
+ "category": "Linux",
259
+ "options": {
260
+ "A": "chown",
261
+ "B": "chmod",
262
+ "C": "chgrp",
263
+ "D": "passwd"
264
+ }
265
+ },
266
+ {
267
+ "number": 25,
268
+ "text": "Что такое SSL/TLS-сертификат?",
269
+ "category": "Cryptography",
270
+ "options": {
271
+ "A": "Файл, содержащий вредоносное ПО",
272
+ "B": "Цифровой документ, который подтверждает подлинность веб-сайта",
273
+ "C": "Закрытый ключ для SSH",
274
+ "D": "Тип зашифрованной базы данных"
275
+ }
276
+ },
277
+ {
278
+ "number": 26,
279
+ "text": "Какое из следующих является атакой социальной инженерии?",
280
+ "category": "Security",
281
+ "options": {
282
+ "A": "Buffer overflow",
283
+ "B": "Фишинг",
284
+ "C": "SQL Injection",
285
+ "D": "Сканирование портов"
286
+ }
287
+ },
288
+ {
289
+ "number": 27,
290
+ "text": "What does the Linux command \"grep\" do?",
291
+ "category": "Linux",
292
+ "options": {
293
+ "A": "Compresses files",
294
+ "B": "Searches for text patterns in files",
295
+ "C": "Shows active processes",
296
+ "D": "Configures the network"
297
+ }
298
+ },
299
+ {
300
+ "number": 28,
301
+ "text": "Что такое VPN?",
302
+ "category": "Network",
303
+ "options": {
304
+ "A": "Тип вируса",
305
+ "B": "Виртуальная частная сеть, которая шифрует интернет-трафик",
306
+ "C": "Протокол передачи файлов",
307
+ "D": "Сканер уязвимостей"
308
+ }
309
+ },
310
+ {
311
+ "number": 29,
312
+ "text": "Что такое CSRF (Cross-Site Request Forgery)?",
313
+ "category": "Web Security",
314
+ "options": {
315
+ "A": "Атака, которая заставляет браузер пользователя выполнять несанкционированные действия",
316
+ "B": "Метод шифрования данных",
317
+ "C": "Тип сетевого сканера",
318
+ "D": "Техника сжатия файлов"
319
+ }
320
+ },
321
+ {
322
+ "number": 30,
323
+ "text": "Какова лучшая практика для хранения паролей в базе данных?",
324
+ "category": "Security",
325
+ "options": {
326
+ "A": "Открытый текст",
327
+ "B": "Зашифрованные с помощью AES",
328
+ "C": "Хэшированные с солью",
329
+ "D": "Закодированные в Base64"
330
+ }
331
+ }
332
+ ]