guiλ‘ μλ§λ€μ΄μ νμ νκΈ΄νλ° μ§ ν΄λ‘λ μ λ―Έλμ΄λ‘ κ°μ‘°νμλ©΄λ¨ μκΉμ€ κ²μκΈκ²μκΈ°λ κ°μ΄μ°λ©΄λ¨ κ²μκΈurlμ κ²μκΈκ²μκΈ°λ‘ ipνν°κ°μκ±°μ°Ύμμ νλ²μ λ§ν¬λ³΅μ¬νλ©΄ μλμΌλ‘ μμκ°μ© μμ λ¨ https://drive.google.com/file/d/12xWemiXBLxIGoa4ggQcQ6oPUeGC5mqmr/view?usp=drive_link μ λν΄λ¦¬λ.py μ λν΄λ¦¬λ.py drive.google.com ## 1. νμ€ μμ½ **λμμΈμ¬μ΄λ κΈ μμ νμ΄μ§μ 보μ μ₯μΉ(ν ν°, λλ ν)λ₯Ό μλ μ°νν΄μ, μ¬λ¬ κ°μ κ²μκΈμ λΉλκΈ°(Async)λ‘ νλ°©μ μ§μλ²λ¦¬λ λ§€ν¬λ‘ μ½λ**μ. --- ## 2. μ£Όμ κΈ°λ₯ λ° μλ μ리 ### 1) URL νμ± λ° λ°°μΉ μ²λ¦¬ (`main`) * μ λ ₯λ λμ κΈ μ£Όμ(view URL)μμ κ°€λ¬λ¦¬ ID(`id`)λ κΈ λ²νΈ(`no`)λ₯Ό μΆμΆν¨. * μ΄κ±Έ μ€μ μμ νΌμ΄ μλ URL(`board/delete/?id=...`)λ‘ λ³νν¨. * `asyncio`λ `aiohttp`λ₯Ό μ¨μ κΈμ ν κ°μ© λλ¦Ώλλ¦Ώ μ§μ°λ κ² μλλΌ, **10κ°μ© λ¬Άμ΄μ(chunk_size=10) λμμ** μμ²μ λ λ¦Ό. μλ μ‘΄λ λΉ λ₯΄κ² νλ €κ³ λΉλκΈ°λ‘ μ§ κ±°μ. ### 2) λμ 보μ ν ν° νμ± (GET μμ²) * λμλ λ§€ν¬λ‘ λ΄ λ§μΌλ €κ³ κΈ μμ ν λ μ¨κ° μ¨κ²¨μ§ 보μ ν€λ€μ μꡬν¨. * μμ νμ΄μ§ HTMLμ κΈμ΄μ¨ λ€μ `HTMLParser`λ μ κ·μ(`re`)μ λλ €μ μλ κ°λ€μ μΉ λ€ νμ³μ΄. * `auth_token`, `cur_t`, `dcc_key`, `dcc_key_v1`, hidden input κ°λ€, κ·Έλ¦¬κ³ μΏ ν€ κ°(`ci_c`) ### 3) ν΅μ¬: μλΉμ€ μ½λ 볡νΈν (`deobfuscate`) * λμκ° λ΄ μ°¨λ¨νλ €κ³ `service_code`λΌλ κ°μ μλ°μ€ν¬λ¦½νΈλ‘ κΌ¬μλ¨μ(λλ ν). * μ½λ μλ¨μ μλ `KEY` λ¬Έμμ΄μ΄λ `deobfuscate` ν¨μκ° λ°λ‘ κ·Έ λμ λ΄μ₯ μνΈν μκ³ λ¦¬μ¦μ μμΆμ ν΄μ **λΉνΈ μ°μ°(<<, >>)μΌλ‘ μλ³Έ μ½λλ₯Ό 볡νΈν**νλ μν μ. μ΄κ±° λͺ» νλ©΄ λμ μλ²κ° μ©κΉκΈ° λλ¬Έμ μ΄ μ½λμμ μ μΌ μ€μν λΆλΆμ. ### 4) μ΅μ’ λ§ν (POST μμ²) * μ΄μ¬ν μμ§ν 보μ ν ν°λ€ + 볡νΈνν `service_code` + λκ° κ³ μ ν΄λ λΉλ²(`111422`) + 리캑차 μλ΅ κ°(`g-recaptcha-response`)μ νλμ λ¬Άμ(`data`)μΌλ‘ λ§λ¦. * μ΄κ±Έ λμ κΈ μμ μ²λ¦¬ μλ²(`delete_password_submit`)λ‘ μ΄μ κΈμ μ§μλ²λ¦Ό. μ리λ μ΄μ λμ
μμ μΉμΈ
[π¦μλ£] μ λν΄λ¦¬λ 곡μ ν¨
κ³΅κ° μΈλ€μΌ (λΈλ¬ μ²λ¦¬λ¨)
| μ κ³ μ¬μ | μ΄μ©μ½κ΄ λ° μ΄μμμΉ μ§μμ μλ° μ¬μ§ μμ |
|---|---|
| Gemini νμ | μμ μΉμΈ |
| μ λ’°λ | 1.00 |
| μ μ± ID | P1 |
Gemini νλ¨ μ΄μ
μμ±μ κ°μ μΉμΈ κ·μΉ μ μ©