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": 19,
3
+ "name": "Old is gold",
4
+ "category": "misc",
5
+ "translation": "O sysadmin anterior trabalhou aqui por quase 47 anos. Você descobre este arquivo no PC antigo dele...",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:58:59.476Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 20,
3
+ "name": "Perceptions",
4
+ "category": "misc",
5
+ "translation": "Confira este blog que eu fiz! Ele tem um backend legal, aparentemente ele usa menos ports.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:06.167Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 21,
3
+ "name": "Rules",
4
+ "category": "misc",
5
+ "translation": "Siga as regras para este CTF!\n\nTemos uma pequena web application que é supostamente segura. Até escondemos uma FLAG dentro do seu source code, mas é super secreta! Apenas os hackers mais habilidosos devem encontrá-la.\n\nSua tarefa é explorar a application, encontrar quaisquer vulnerabilities, e finalmente recuperar a FLAG.\n\nA application está rodando em http://challenge.example.com.\n\nBoa sorte, e happy hacking!\n\nFlag format: `FLAG{...}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:17.682Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 22,
3
+ "name": "Survey",
4
+ "category": "misc",
5
+ "translation": "Conte-nos o que você achou do PECAN+ CTF 2025. Todo feedback ajuda!\n\n<https://forms.cloud.microsoft/r/q5ESPCft24>",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:21.914Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 23,
3
+ "name": "The Job Interview",
4
+ "category": "misc",
5
+ "translation": "Você está curvado sobre seu teclado, travando um combate mental com perguntas de entrevista de emprego por duas horas implacáveis. Seu café está frio. Sua paciência, mais fina.\nMas, justamente quando você está prestes a enviar sua resposta final, uma mensagem enigmática aparece em sua tela:\n\n\"Você provou sua resistência. Agora vamos testar sua capacidade de resolução de problemas e seu conhecimento avançado do código que você parece conhecer tão bem.\"\n\nUma única URL surge na tela:\n\nhttps://docs.google.com/document/d/e/2PACX-1vRW7X8yMO9cM-b6Ao3FbiZysF3MIjARoeO73z0PlG8O_yeM8xxWAWzt9hdoavlh3HR1IOEwWtJFpczI/pub\n\nLá dentro? Uma grade de dados enigmáticos, enganosamente simples, mas escondendo algo crucial.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:29.690Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 24,
3
+ "name": "Class Above Par",
4
+ "category": "osint",
5
+ "translation": "Todos os dias, Jamie caminha pelas ruas arborizadas dos subúrbios do sul de Melbourne para chegar à sua escola secundária — um lugar onde a chamada matinal é frequentemente interrompida pelo trovão distante de aeronaves sobrevoando.\n\nCerta tarde, enquanto mapeava pontos de referência locais para um projeto de aula, Jamie descobriu algo curioso: sua escola pode ser a escola secundária mais próxima de um grande aeroporto. Mais peculiar ainda, fica também a poucos passos de extensos campos de golfe, onde tacadas tranquilas contrastam com o barulho dos motores a jato.\n\nVocê consegue descobrir a escola que Jamie chama de lar? Flag format: `pecan{my_high_school}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:42.261Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 25,
3
+ "name": "Travelling Around",
4
+ "category": "osint",
5
+ "translation": "Hmm… Corn Man parece ter visitado alguns lugares interessantes, em uma rota muito estranha. Poderia isso significar algo? Talvez os subúrbios guardem uma pista... As postagens podem conter um \"pointer\" na direção certa...\nLembre-se de envolver a flag em pecan{}, use letras maiúsculas e separe as palavras com um underscore. Ex: `pecan{I_LOVE_PECAN}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:59:55.503Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 26,
3
+ "name": "Online Presence",
4
+ "category": "osint",
5
+ "translation": "Após uma investigação extensa, parece que Corn Man tem uma presença nas redes sociais. Poderia nos ajudar a encontrar a conta que ele usa?",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:04.015Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 27,
3
+ "name": "Happy Birthday Corn Man!",
4
+ "category": "osint",
5
+ "translation": "Tenho rastreado o Corn Man há algum tempo, mas me deparei com um impasse. Recentemente, encontrei o email dele online: <cornman25944@gmail.com>. Ele parece ter uma grande presença online. Você poderia potencialmente encontrar a data de nascimento dele e ajudar nesta investigação?",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:11.175Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 28,
3
+ "name": "Ego is the weakness",
4
+ "category": "osint",
5
+ "translation": "Uma operação de ransomware foi avistada recentemente, que resultou em milhões de dólares perdidos em segundos.\nApós alguma investigação colaborativa com o governo, rastreamos suas atividades até uma conta do Instagram, que se acredita pertencer ao culpado.\nVocê pode nos ajudar a identificar o endereço de um lugar que este cibercriminoso frequentemente visita?\nNossa inteligência indica que há uma grande chance de essa pessoa ainda ser jovem, então ela ainda não se formou.\n\nFlag format: `pecan{Paste in the address from Google Maps}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:26.840Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 29,
3
+ "name": "Go git the door",
4
+ "category": "osint",
5
+ "translation": "Um infame cibercriminoso que realizou com sucesso muitas operações de ransomware em larga escala no passado está trabalhando em uma nova. Para nossa sorte, ele acidentalmente tornou seu GitHub repository público. Você pode examinar para ver se ele acidentalmente expõe alguma informação secreta?\nFlag format: `pecan{secret1_secret2}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:29.752Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 30,
3
+ "name": "Echo Chamber",
4
+ "category": "pwn",
5
+ "translation": "Encontrei este serviço estranho que simplesmente responde com o que quer que você envie para ele, é como um espelho estranho ou uma reflexão ou algo assim.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:38.464Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 31,
3
+ "name": "Flag Fish",
4
+ "category": "pwn",
5
+ "translation": "Bjarne está caçando o cobiçado flag fish. Sua primeira `try` não teve sucesso, você pode ajudá-lo a fazer o `catch` desta vez?",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:48.562Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 32,
3
+ "name": "fridge",
4
+ "category": "pwn",
5
+ "translation": "Tivemos um data breach! Nossa equipe de forensics apurou que havia um tráfego estranho vindo do nosso novo smart refrigerator, e parece que eles encontraram um antigo debugging service que ainda está em execução...\n\nAgora é com você descobrir como eles conseguiram acesso ao nosso fridge!",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:00:58.110Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 33,
3
+ "name": "Say Shells!",
4
+ "category": "pwn",
5
+ "translation": "Um simples web app permite que você faça upload de image files para visualizar seus EXIF metadata. Mas algo parece estranho... suas images estão sendo analisadas um pouco profundamente demais?\nVocê consegue enganar o server para que ele execute um command próprio — e revele o conteúdo de um flag.txt file oculto?\n\nNota: Apenas image file uploads são permitidos. Você não precisará de brute force — apenas um pouco de criatividade e o format certo.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:05.609Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 34,
3
+ "name": "Show Me What You GOT!",
4
+ "category": "pwn",
5
+ "translation": "Mostre o que você TEM! Eu quero ver do que você é capaz!",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:16.043Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 35,
3
+ "name": "cafe1995",
4
+ "category": "rev",
5
+ "translation": "Você pegou os pedaços de um programa de um desenvolvedor não supervisionado que acabou de ser demitido.\nEncontre a senha e coloque a empresa de volta nos trilhos... ou eles vão te demitir também.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:24.133Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 36,
3
+ "name": "Doors 3",
4
+ "category": "rev",
5
+ "translation": "Seu amigo tem uma última flag que ele não acha que você consegue alcançar, já que eles estão testando sua capacidade de detectar bypassing the licence check.\n\nTente pegar a última flag. Você pode precisar patch the binary para chegar lá, mas há algumas rotas a seguir.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:30.126Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 37,
3
+ "name": "Doors 2",
4
+ "category": "rev",
5
+ "translation": "Seu amigo está muito agradecido por ter encontrado aquela flag que eles esqueceram!\n\nEles dedicaram um tempo para esconder o resto das flags e esperam que você não consiga alcançá-las. Você acha que conseguiria fazer o reverse da key validation function deles?\nGere sua própria licence key para o programa deles e pegue a flag!",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:38.947Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 38,
3
+ "name": "Doors",
4
+ "category": "rev",
5
+ "translation": "Seu amigo te enviou uma versão protótipo de um security key verification program que ele está escrevendo em C#. Há algumas flags aqui, mas você pode ajudar encontrando a flag que ele esqueceu de criptografar?",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:42.477Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 39,
3
+ "name": "Too Many Flags",
4
+ "category": "rev",
5
+ "translation": "Encontramos este arquivo cheio de flags, mas não sabemos qual é a certa! Você consegue descobrir como essas flags foram geradas e encontrar a certa?",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:45.398Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 4,
3
+ "name": "#InMyLibraryClashingEra",
4
+ "category": "crypto",
5
+ "translation": "Eu criei uma comicamente simples? hash function. Encontre um clash e eu te darei a biblioteca para a qual dirigir. Isto é, se você conseguir ler o que eu tenho. Foi mal, eu bebi 32 ml de Base model Dasani antes de fazer isso.\n\npycryptodome pode ser necessário, então instale isso antes.\n\nLembre-se de encapsular a flag em `pecan{flag}`.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:21.047Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 40,
3
+ "name": "Xanarto",
4
+ "category": "rev",
5
+ "translation": "Encontrei esse cara no LinkedIn que alegava ter criado um algoritmo inquebrável. Prove que ele está errado. Anexei a postagem em uma imagem.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:48.939Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 41,
3
+ "name": "Cheese",
4
+ "category": "steg",
5
+ "translation": "Para este desafio, deve-se aprofundar nas profundezas do `image file` fornecido como parte da maldição do queijo, utilizando várias ferramentas para descobrir o que alguns descartariam como `completely random text`.\n\nSe ao menos este `string` pudesse ser manipulado ou convertido de alguma forma, esta poderia ser nossa única esperança em encontrar a `flag` para levantar a maldição do queijo de uma vez por todas......\n\nAproveite :)",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:01:54.917Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 42,
3
+ "name": "Dogs Always Know",
4
+ "category": "steg",
5
+ "translation": "Cães têm um faro para segredos—enterrados bem fundo, onde ninguém pensa em procurar. Confie nos seus instintos; às vezes, o que está escondido não está em plena vista, mas nos ossos debaixo da superfície.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:01.774Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 43,
3
+ "name": "In the fine print",
4
+ "category": "steg",
5
+ "translation": "Um conjunto de documentos impressos foi descoberto em um local não revelado. Eles parecem aparentemente inocentes, mas algo parece estranho...",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:11.588Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 44,
3
+ "name": "In the words of Taylor",
4
+ "category": "steg",
5
+ "translation": "Eu vou escrever seu nome... ou, pelo menos, uma flag.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:13.902Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 45,
3
+ "name": "Layer Cake",
4
+ "category": "steg",
5
+ "translation": "Nem todos os bolos são mentiras. Este tem camadas!\nO formato da flag é `pecan{crackedwords}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:16.946Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 46,
3
+ "name": "Looking through the sound",
4
+ "category": "steg",
5
+ "translation": "Nem toda mensagem se propaga nas ondas do som. Você terá que *olhar* através do ruído. Deixe seus olhos ouvirem, e deixe a música soletrar para você. Nota: Você *não* precisa ouvir o áudio para fazer este desafio.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:25.678Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 47,
3
+ "name": "Nothing to See Here",
4
+ "category": "steg",
5
+ "translation": "Aqui está um pequeno desenho que eu fiz. Não há nada para ver nele, mas como você pode ver.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:35.817Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 48,
3
+ "name": "Stuck in Your Head",
4
+ "category": "steg",
5
+ "translation": "Você precisa ouvir minha música favorita, e me diga 21 razões por que ela é a melhor!",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:41.851Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 49,
3
+ "name": "TLSB",
4
+ "category": "steg",
5
+ "translation": "Você deve ter ouvido falar de Least Significant Bit (LSB) Steganography, mas você já ouviu falar de Third Least Significant Bit (TLSB) Steganography? (Espero que não, considerando que eu inventei isso para este desafio). (DICA: Eu armazenei o segredo em image byte order)",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T04:02:47.064Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 5,
3
+ "name": "Multi-layer",
4
+ "category": "crypto",
5
+ "translation": "Esta coisa tem camadas.\n\n```\nZnJpcmEgbyBmY25wciBmcmlyYSBhdmFyIGZjbnByIGZ2ayBzIGZjbnByIGZyaXJhIHN2aXIgZmNucHIgZ2piIG1yZWIgZmNucHIgZnZrIGZyaXJhIGZjbnByIGZ2ayBzIGZjbnByIGZyaXJhIHNiaGUgZmNucHIgZ2piIG1yZWIgZmNucHIgZnJpcmEgc2JoZSBmY25wciBmdmsgcnZ0dWcgZmNucHIgZnZrIGF2YXIgZmNucHIgZnJpcmEgZ3VlcnIgZmNucHIgZnJpcmEgcQ==\n```\n\nRemember that the flag format is `pecan{flag_goes_here}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:25.514Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 6,
3
+ "name": "Mysteries of the Tomb",
4
+ "category": "crypto",
5
+ "translation": "Nas profundezas sombrias do Vale dos Reis, exploradores descobriram uma tumba há muito perdida no tempo. No seu coração repousa uma antiga tabuleta de pedra, gravada meticulosamente com glifos misteriosos — uma pirâmide de segredos criada por escribas devotados guardando o tesouro mais sagrado do faraó.\n\nAtravés de uma tradução cuidadosa, uma lenda recorrente emerge: esta tabuleta guarda a chave para um poder incalculável. Armado com suas anotações diligentes e um conhecimento crescente dos símbolos, você começa a desvendar sua mensagem críptica.\n\nAté agora, a inscrição no ápice da tabuleta diz:\n\"Para desvendar a verdade, leia as pedras ao primeiro raio de luz da aurora, traçando do cume até as areias movediças.\"\n\nFormat: `pecan{flag}`",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:35.235Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 7,
3
+ "name": "RSA101",
4
+ "category": "crypto",
5
+ "translation": "Recebemos uma mensagem que acreditamos estar criptografada com RSA, mas os primos na public key podem ser fracos.\nEncontre os factors e decipher a mensagem.\n\n```\nn = 914224879713534891752745051672415462330144197757968187295993\ne = 17\nciphertext = 152293808340616594229073242267037730353433147091103189533666\n```",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:42.267Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 8,
3
+ "name": "Sheet Music Cipher",
4
+ "category": "crypto",
5
+ "translation": "Ninguém nunca saberá que eu usei um Compound Motivic Musical Cipher. Eu posso simplesmente tocar música em voz alta e enviar mensagens sem que ninguém perceba.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:47.882Z"
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": 9,
3
+ "name": "That's Not My Unicode",
4
+ "category": "crypto",
5
+ "translation": "Esses símbolos estranhos parecem antigos, mas podem estar tentando te dizer algo mais moderno. Junte a mensagem escondida à vista de todos — às vezes, o que parece velho pode falar em uma nova língua.",
6
+ "lang": "pt",
7
+ "model": "gemini-3.1-pro-preview",
8
+ "timestamp": "2026-04-08T03:57:54.540Z"
9
+ }