Slide 1

Slide 1 text

෼Ͱ஌Δ ήʔϜ͕ʮνʔτ͞ΕΔʯ࢓૊Έ  ʙ௨৴ɾ"1*ɾϝϞϦ͔ΒݟΔ߈ܸͱ๷ޚʙ .BSUI  5&$)#"50/JO౦ژ ʙήʔϜΞϯννʔτʹֶͿηΩϡϦςΟઃܭͱ߈๷ͷ෣୆ཪʙ  גࣜձࣾεςϥηΩϡϦςΟ খ஛ɹହҰ

Slide 2

Slide 2 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ࣗݾ঺հ w ໊લɿখ஛ହҰ w 9(JU)VCɿULNSV w $&0! גࣜձࣾεςϥηΩϡϦςΟ w ήʔϜձࣾͰ೥·Ͱ ΞϯννʔτΛ΍͍ͬͯ·ͨ͠ 

Slide 3

Slide 3 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ w ߨࢣɿ w ηΩϡϦςΟɾΩϟϯϓશࠃେձڴҖղੳΫϥεߨࢣ w ηΩϡϦςΟɾΩϟϯϓશࠃେձ ϓϩμΫτηΩϡϦςΟτϥοΫߨࢣ w &%3όΠύεɿ w "750,:0ొஃ w πʔϧ։ൃɿ w #MBDL)BU64""STFOBMొஃ w #MBDL)BU&6301&"STFOBMొஃ w $0%&#-6&#MVFCPYొஃ ओͳొஃ 

Slide 4

Slide 4 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ຊ೔ͷྲྀΕ  ௨৴಺༰ͷอޢͷඞཁੑŠ)5514ʴϖΠϩʔυ҉߸Խ  ήʔϜαʔόͷ੬ऑੑŠ࣮ྫͰֶͿ"1*ͷ੬ऑੑ  ϝϞϦվ͟ΜŠ࢓૊Έͱ044πʔϧ ໨ඪɿ෼ͰʮήʔϜಛ༗ͷηΩϡϦςΟͷצॴʯΛ࣋ͪؼ͍ͬͯͨͩ͘ 

Slide 5

Slide 5 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ͳͥΞϯννʔτ͸ΊΜͲ͍͘͞ͷ͔ w ෆਖ਼ߦҝͷϞνϕʔγϣϯ͕ߴ͍ w ήʔϜಛ༗ͷڧ͍Ϟνϕʔγϣϯʢ೤ڰతͳϑΝϯɺঝೝཉٻͳͲʣ w ϦΞϧϚωʔͱ௚݁͢Δܦࡁݍʢ3.5ʹήʔϜ಺ࢿ࢈ͷݱۚചങʣ w ΫϥΠΞϯτ͸߈ܸऀͷ؅ཧԼͷ୺຤Ͱಈ࡞͢Δ w αʔόͷΈɾΫϥΠΞϯτͷΈͷରࡦͰ͸ෆे෼ 

Slide 6

Slide 6 text

௨৴಺༰ͷอޢ

Slide 7

Slide 7 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ )5514ʮ͚ͩʯͰ͸ෆे෼ w ୺຤ͱαʔόͷؒʹϩʔΧϧϓϩΩγΛڬΉͱ௨৴಺༰ؙ͕ݟ͑ʹͳΔ w NJUNQSPYZ #VSQ4VJUFɺ1BDLFU1SPYZͳͲ w ϓϩΩγπʔϧͷূ໌ॻΛ୺຤ʹΠϯετʔϧ͢Δ͜ͱͰɺ )5514ͷ҉߸ԽΛղআͯ͠த਎ΛಡΊΔ w ߈ܸऀ͸ϦΫΤετϨεϙϯεΛࣗ༝ʹॻ͖׵͑ΒΕΔ w )5514͸͋͘·Ͱʮܦ࿏্ͷ౪ௌ๷ࢭʯͰ͋Γɺ Ϣʔβͷ୺຤ଆͰͷ౪ௌ͸๷͛ͳ͍ 

Slide 8

Slide 8 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ௨৴಺༰Λࣗ༝ʹվ͟ΜͰ͖Δͱʜ w εςʔδΫϦΞϦΫΤετͰ൑ఆΛվ͟Μ w ෆਖ਼ʹεςʔδ͕ΫϦΞ͞ΕΔ w είΞૹ৴ϦΫΤετͰείΞΛվ͟Μ w ϥϯΩϯά͕ߥΕͯήʔϜόϥϯε่͕ΕΔ 

Slide 9

Slide 9 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ )5514ϖΠϩʔυΛ͞Βʹ҉߸Խ͢Δ w )5514ͷ಺ଆͰϖΠϩʔυΛ͞Βʹಠࣗʹ҉߸Խ͍ͯ͠Δ࣮૷͕Ұൠత w ϖΠϩʔυϦΫΤετϨεϙϯεͷϘσΟʢ+40/ͳͲʣ w ϓϩΩγͰ)5514Λղআ͞Εͯ΋ɺத਎͸͞Βʹ҉߸Խ͞Ε͍ͯΔͨΊ ղಡͰ͖ͳ͍ w ҉߸伴ͷ؅ཧͱ೉ಡԽͱηοτͰޮՌΛൃش 

Slide 10

Slide 10 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ϖΠϩʔυͷ҉߸Խͷ࣮૷ϙΠϯτ w ҉߸伴ͷΤϯίʔυɿ903౳ͰΤϯίʔυ͠ɺฏจͰอ࣋͠ͳ͍ w ҉߸伴ͷ෼ׂɿෳ਺ʹ෼ׂͯ͠อଘ͠ɺ࢖༻࣌ʹ݁߹ͯ͠෮ݩ͢Δ w ΫϥΠΞϯτଆɿ҉߸Խɾ෮߸ॲཧ͸+BWB$Ͱ͸ͳ͘$$ ଆʹدͤ ೉ಡԽΛ࣮ࢪ w +BWB$͸σίϯύΠϧ͕༰қͳͨΊ w ϦϓϨΠରࡦɿλΠϜελϯϓ ཚ਺Ͱಉ͡ϦΫΤετͷ࠶ૹΛݕ஌ 

Slide 11

Slide 11 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ TUSJOHTίϚϯυ͚ͩͰ伴ΛಛఆͰ͖Δ w όΠφϦʹฏจͷ҉߸伴Λͦͷ··อଘ͍ͯ͠ΔͱTUSJOHTίϚϯυͰ伴Λநग़Ͱ͖Δ w ৄࡉͳϦόʔεΤϯδχΞϦϯά͸ෆཁ w ҉߸Խ伴͸ݻఆ௕ʢ"&4όΠτ "&4όΠτʣͷͨΊݟ͚ͭ΍͍͢ w ಉ͡௕͞ͷͦΕͬΆ͍จࣈྻΛ୳͚ͩ͢ͰൃݟͰ͖ͯ͠·͏ w ରࡦ伴ͷΤϯίʔυɾ෼ׂอଘͰTUSJOHTʹΑΔநग़Λࠔ೉ʹ͢Δ  $ strings -n 32 libgame.so | head aB3kP9mZxQ7wL2nR5vY8jC4hF6tD0sGe ← AES-256ͷ伴ʢ32όΠτʣ

Slide 12

Slide 12 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ೉ಡԽ͚ͩͰ͸कΕͳ͍ Š'SJEBʹΑΔಈతղੳ w 'SJEB͸࣮ߦதͷΞϓϦͷؔ਺ΛϑοΫͰ͖Δπʔϧ w ؔ਺ͷ࣮ߦ࣌ͷೖग़ྗΛ؍ଌͰ͖Δ w ෮߸ॲཧ͕ݺ͹ΕͨॠؒʹҾ਺ͷ҉߸伴Λ೷͖ݟͰ͖Δ w ҉߸伴ΛӅͯ͠΋ɺ࢖͏ॠؒΛૂΘΕΕ͹औಘ͞ΕΔ w ࣮ߦ࣌ͷೖग़ྗΛ؍ଌͰ͖Δͷ͕'SJEBͷڧΈ  // Frida εΫϦϓτྫ: ෮߸ؔ਺͕ݺ͹Εͨ࣌ʹҾ਺ʢ伴ʣΛදࣔ Interceptor.attach(Module.findExportByName("libgame.so", "decrypt"), { onEnter: function(args) { console.log("key: " + Memory.readByteArray(args[1], 32)); } });

Slide 13

Slide 13 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ 44-1JOOJOH΍σόοΨݕ஌ɺ ɹɹɹɹɹɹΫϥΠΞϯτͷվ͟Μݕ஌Λซ༻ w 44-1JOOJOH w ΞϓϦ಺ʹ૊ΈࠐΜͩ44-ূ໌ॻΛ࢖͏͜ͱͰɺϓϩΩγπʔϧΛ࢖͑ͳ͍Α͏ʹ w σόοΨݕ஌ w 'SJEBͳͲͷσόοΨΛ࣮ߦ͞Εͳ͍Α͏ʹ w ΫϥΠΞϯτͷվ͟Μݕ஌ w 44-1JOOJOHΛແޮԽ͢ΔύονɺσόοΨݕ஌ΛແޮԽ͢ΔύονΛ౰ͯΒΕͳ ͍Α͏ʹ 

Slide 14

Slide 14 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ Ξϯννʔτʹ͓͚Δଟ૚๷ޚͷߟ͑ํ w ݸʑͷରࡦ͸ಥഁ͞ΕΔલఏͰɺෳ਺ͷ๷ޚࡦΛॏͶΔ͜ͱ͕େ੾ w Ͳͷ૚͕ഁΒΕͯ΋࣍ͷ૚Ͱݕ஌ɾ๷ޚͰ͖ΔઃܭΛ໨ࢦ͢ w ߈ܸίετΛੵΈ্͛ͯɺׂʹ߹Θͳ͍ঢ়ଶʹ͢Δͷ͕ΰʔϧ 

Slide 15

Slide 15 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ଟ૚๷ޚͷ۩ମతͳͭͷΞϓϩʔν ୯Ұͷରࡦ͸ඞͣಥഁ͞ΕΔલఏͰɺෳ਺ͷ๷ޚࡦΛॏͶΔ͜ͱ͕େ੾  ҉߸伴ͷอޢŠΤϯίʔυɾ෼ׂอଘɾ೉ಡԽ  ಈతղੳରࡦŠ'SJEBͳͲͷ%#*πʔϧɺσόοΨͷݕ஌  ಈ࡞؀ڥͷݕূŠSPPUԽ+BJMCSFBL͞Εͨ୺຤ɺΤϛϡϨʔλͷݕ஌  ϦΫΤετͷݕূŠϦΫΤετͷϦϓϨΠ߈ܸͷ๷ࢭ ɹɹɹෆ৹ͳϖΠϩʔυʢۃ୺ʹେ͖ͳ஋ͳͲʣͷϒϩοΫͳͲ 

Slide 16

Slide 16 text

ήʔϜʹ͋Γ͕ͪͳ "1*ͷ੬ऑੑ

Slide 17

Slide 17 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ήʔϜಛ༗ͷϩδοΫʹ஫ҙ w 42-J΍944ͳͲͷҰൠతͳ8FCͷ੬ऑੑ΁ͷରࡦ͸΋ͪΖΜඞཁɻ w ͔͠͠ɺͦΕ͚ͩͰ͸ήʔϜ͸कΓ͖Εͳ͍ɻ w ήʔϜݻ༗ͷϩδοΫͷ伱Λಥ͔ΕΔྫ w Πϕϯτظؒ֎ͷ"1*Λ௚઀ୟ͍ͯݶఆใुΛऔಘ͢Δ w ύʔςΟฤ੒"1*Ͱಉ͡ΩϟϥΛෳ਺ճηοτͯ͠ೳྗΛॏෳͤ͞Δ w ΞΠςϜऔҾ"1*ͷখ਺఺ॲཧͷؙΊޡࠩΛར༻ͯ͠ΞΠςϜΛ ૿৩ͤ͞Δ 

Slide 18

Slide 18 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶃෳ਺ͷϦΫΤετΛಉ࣌ʹૹ৴͢Δ͜ͱͰ ճ਺੍ݶΛ͢Γൈ͚Δ w ૝ఆγφϦΦ೔ճݶఆͷΨνϟ"1* w ߈ܸํ๏ಉ͡"1*ʹରͯ͠ಉ࣌ʹෳ਺ͷϦΫΤετΛฒߦૹ৴͢Δ w ݪҼ%#ͷϩοΫʢഉଞ੍ޚʣ͕Ͱ͖͓ͯΒͣɺʮ࢒ճ਺ͷ֬ೝʯ͔Βʮߋ ৽͢Δʯ·ͰͷؒʹଞͷϦΫΤετ͕࣮ߦՄೳʹͳΔ  ࣌ؒ ────────────────────────────────────────────────────────▶ ϦΫΤετA: ࢒ճ਺ΛಡΉ(1) → Ψνϟ࣮ߦ → ࢒ճ਺Λ0ʹߋ৽ ϦΫΤετB: ࢒ճ਺ΛಡΉ(1) → Ψνϟ࣮ߦ → ࢒ճ਺Λ0ʹߋ৽ ↑ A͕࢒ճ਺Λߋ৽͢ΔલʹB΋ʮ࢒Γ1ճʯͱೝࣝ͠ɺΨνϟΛ࣮ߦͯ͠͠·͏

Slide 19

Slide 19 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ͜ͷ໰୊ͷ໊લŠ50$506 w 50$5065JNFPG$IFDLUP5JNFPG6TF w ʮ஋Λ֬ೝ͔ͯ͠Βͦͷ஋Λ࢖͏·Ͱʯͷؒʹঢ়ଶ͕มΘͬͯ͠·͏໰ ୊ͷ૯শ w ΨνϟʹݶΒͣɺࡏݿ؅ཧɾϙΠϯτফඅɾΫʔϙϯར༻ͳͲ ʮ࢒਺Λݟ͔ͯΒݮΒ͢ʯॲཧશൠͰى͜ΓಘΔ w ήʔϜݻ༗ͷ໰୊Ͱ͸ͳ͍͕ճ਺੍ݶ͕͋Δػೳ͕ଟ͍ήʔϜͰ͸සग़ 

Slide 20

Slide 20 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶃͷରࡦ w ൵؍తϩοΫŠʮઌʹߦΛϩοΫ͔ͯ͠Β%#Λૢ࡞͢Δʯํࣜ w ΞϓϦͷίʔυͰ͸ͳ͘%#ଆͰ੔߹ੑΛอূ͢Δ  SELECT remaining FROM gacha_limit ɹɹWHERE user_id = ? FOR UPDATE; -- ଞͷϦΫΤετ͸͜͜Ͱ଴ͨ͞ΕΔ

Slide 21

Slide 21 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶄϚΠφεͷ਺ྔΛૹΔͱΞΠςϜ͕૿͑Δ w ૝ఆ͢Δ"1*ΞΠςϜަ׵"1*ʢΞΠςϜ"Λ/ݸ౉ͯ͠ΞΠςϜ#Λऔ ಘʣ w ߈ܸํ๏ΞΠςϜͷ਺ྔʹෛͷ஋Λࢦఆͯ͠ϦΫΤετΛૹΔ  w ݪҼαʔόଆͰ਺ྔ͕ਖ਼ͷ஋͔Ͳ͏͔Λݕূ͍ͯ͠ͳ͍ͨΊ ॴ࣋਺  ͱͳΓॴ࣋਺͕ٯʹ૿Ճ͢Δ  POST /api/exchange { "give_item_id": "wood", "give_count": -10}

Slide 22

Slide 22 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶄͷରࡦ w ύϥϝʔλͷόϦσʔγϣϯʢ஋͕ਖ਼͍͔͠ͷݕূʣΛపఈ͢Δ w ܕͷνΣοΫ͚ͩͰͳ͘ʮ஋͕Ҏ্͔ʯʮ্ݶΛ௒͍͑ͯͳ͍͔ʯ΋ ඞͣ֬ೝ w ੔਺Φʔόʔϑϩʔʢڊେͳ஋ΛೖΕΔͱʹ໭Δݱ৅ʣʹ΋஫ҙ w ήʔϜͰ͸ѻ͏਺஋͕େ͖͍ͷͰكʹൃੜ͢Δ 

Slide 23

Slide 23 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶅແঈΞΠςϜͰ՝ۚΞΠςϜͱ ಉ౳ͷରՁΛෆਖ਼औಘ w ૝ఆ͢Δ"1*՝ۚΨνϟͷ݁ՌΞΠςϜΛड͚औΔ"1* w ߈ܸํ๏՝ۚΞΠςϜͷ*%͕ظ଴͞ΕΔύϥϝʔλʹ ແঈΞΠςϜͷ*%Λࢦఆͯ͠ૹ৴͢Δ  w ݪҼαʔό͕Ψνϟ*%ͱΞΠςϜ*%ͷ੔߹ੑΛݕূ͍ͯ͠ͳ͍ͨΊɺແ ঈΞΠςϜͰ՝ۚใुͱಉ౳ͷରՁΛಘΒΕͯ͠·͏  POST /api/claim_reward { "gacha_id": "premium_gacha", "item_id": "free_item_001" }

Slide 24

Slide 24 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ੬ऑੑᶅͷରࡦ w Ψνϟ*%ͱΞΠςϜ*%ͷ੔߹ੑΛݕূ͢Δ w ͦ΋ͦ΋ΫϥΠΞϯτʹΞΠςϜ*%Λબ୒ͤ͞ͳ͍ઃܭ͕ཧ૝ w ରՁΛड͚औΔ"1*͸ಉ͡ϦΫΤετ͕དྷͯ΋ೋॏʹॲཧ͞Εͳ͍ઃܭ ʹ͢ΔʢϦϓϨΠ߈ܸରࡦʣ 

Slide 25

Slide 25 text

ϝϞϦվ͟Μͷ࢓૊Έͱ 044

Slide 26

Slide 26 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ϝϞϦվ͟Μͱ͸ w ήʔϜϓϩηεͷϝϞϦ্ͷ஋ʢ)1ɺॴ࣋ۚɺελϛφ౳ʣΛॻ͖׵͑ Δ߈ܸ w 8JOEPXTήʔϜͰ͸ݹ͔͘Β͏͞ΈΈϋϦέʔϯ΍$IFBU&OHJOFͳͲ Ͱ஌ΒΕΔ 

Slide 27

Slide 27 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ "OESPJEͰͷϝϞϦಡΈॻ͖ w SPPUԽͳ͠ͰՄೳͳख๏Λ঺հ w run-asίϚϯυɿࢦఆͨ͠ΞϓϦͱಉ͡ݖݶͰίϚϯυΛ࣮ߦͰ͖Δ   w run-as͕࢖͑Δͷ͸"OESPJE.BOJGFTUYNMͰ EFCVHHBCMFUSVFʹ ͳ͍ͬͯΔ৔߹ͷΈ  $ adb shell $ run-as com.example.game # ͜ͷΞϓϦͷݖݶͰγΣϧʹೖΔ $ cat /proc//maps # ϝϞϦϚοϓͷ֬ೝ

Slide 28

Slide 28 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ϝϞϦΛදٖ͢ࣅϑΝΠϧ w -JOVYͰ͸֤ϓϩηεͷϝϞϦ৘ใ͕ಛघͳϑΝΠϧͱͯ͠ެ։͞Ε͍ͯ Δ w /proc//mapsͲͷΞυϨεʹԿ͕഑ஔ͞Ε͍ͯΔ͔ͷҰཡද w /proc//memϝϞϦͷத਎ͦͷ΋ͷʢಡΈॻ͖Մೳʣ 

Slide 29

Slide 29 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ٖࣅϑΝΠϧΛ༻͍ͨϝϞϦͷॻ͖׵͑ํ๏ w -JOVYͰ͸֤ϓϩηεͷϝϞϦ৘ใ͕ಛघͳϑΝΠϧͱͯ͠ެ։͞Ε͍ͯ Δ w /proc//maps ͔ΒήʔϜ͕࢖༻͍ͯ͠ΔΞυϨεൣғΛಛఆ w /proc//mem ͷ֘౰ՕॴΛಡΈऔΓɺ໨తͷ஋ʢྫ)1ʣΛ ݕࡧ w ݟ͚ͭͨΞυϨεͷ஋Λॻ͖׵͑Δʢྫ)1ˠʣ w ήʔϜ͕ը໘Λ࠶ඳը͢Δͱվ͟Μޙͷ஋͕දࣔ͞ΕΔ 

Slide 30

Slide 30 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ BQLNFEJUŠ"OESPJEϝϞϦվ͟Μ044 w IUUQTHJUIVCDPNTUFSSBTFDBQLNFEJU w (P੡ͷ"OESPJE޲͚ϝϞϦฤूπʔϧ w SPPUݖݶෆཁʢrun-as࣮ߦޙʹಈ࡞ʣ w ஋ͷݕࡧˠߜΓࠐΈˠॻ͖׵͑ΛίϚϯυϥΠϯͰ׬݁ 

Slide 31

Slide 31 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ BQLNFEJUŠ"OESPJEϝϞϦվ͟Μ044 w IUUQTHJUIVCDPNTUFSSBTFDBQLNFEJU w #MBDL)BU64""STFOBMͰൃද w ੬ऑੑ਍அ΍։ൃ࣌ͷςετʹ࢖༻͍ͯͩ͘͠͞ɻνʔτ͸ېࢭʂʂ  $ adb shell $ run-as com.example.game # ͜ͷΞϓϦͷݖݶͰγΣϧʹೖΔ $ ./meditɹ > find 100 # ݱࡏ஋͕100ͷΞυϨεΛݕࡧ > filter 95 # HPΛݮΒ͔ͯ͠Β࠶ݕࡧͰߜΓࠐΈ > patch 99999 # ಛఆΞυϨεͷ஋Λॻ͖׵͑

Slide 32

Slide 32 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ϝϞϦվ͟Μͷରࡦ w ௚઀తͳରࡦ w ϝϞϦ্ͷ஋͸903ͳͲͰΤϯίʔυ͓ͯ͘͠ w ஋͕ॻ͖׵͑ΒΕ͍ͯͳ͍͔ΛνΣοΫαϜͰ֬ೝ w νʔτΛ΍ΓͮΒ͘͢Δରࡦ w "OESPJEͰ͸SPPUԽ୺຤ͷݕ஌ w J04Ͱ͸+BJMCSFBLݕ஌ 

Slide 33

Slide 33 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ·ͱΊ w ήʔϜηΩϡϦςΟͷຊ࣭͸ʮΫϥΠΞϯτ͸ఢ஍ʹ͋Δʯͱ͍͏લఏ ʹཱͭ͜ͱ w ΫϥΠΞϯτ͸߈ܸऀͷखݩʹ͋Γɺ௨৴಺༰΍όΠφϦΛࣗ༝ʹղੳ Ͱ͖Δ͜ͱΛ๨Εͳ͍ w Ұൠతͳ੬ऑੑରࡦʹՃ͑ͯɺήʔϜݻ༗ͷϏδωεϩδοΫʹજΉ ϦεΫΛચ͍ग़͢ w ήʔϜͷ࢓༷Λʮѱ༻͢Δଆͷࢹ఺ʯͰݟ௚͢͜ͱ͕େ੾