import gdb import secrets POKEDEX = { 1: "フシギダネ", 2: "フシギソウ", 3: "フシギバナ", 4: "ヒトカゲ", 5: "リザード", 6: "リザードン", 7: "ゼニガメ", 8: "カメール", 9: "カメックス", 10: "キャタピー", 11: "トランセル", 12: "バタフリー", 13: "ビードル", 14: "コクーン", 15: "スピアー", 16: "ポッポ", 17: "ピジョン", 18: "ピジョット", 19: "コラッタ", 20: "ラッタ", 21: "オニスズメ", 22: "オニドリル", 23: "アーボ", 24: "アーボック", 25: "ピカチュウ", 26: "ライチュウ", 27: "サンド", 28: "サンドパン", 29: "ニドラン♀", 30: "ニドリーナ", 31: "ニドクイン", 32: "ニドラン♂", 33: "ニドリーノ", 34: "ニドキング", 35: "ピッピ", 36: "ピクシー", 37: "ロコン", 38: "キュウコン", 39: "プリン", 40: "プクリン", 41: "ズバット", 42: "ゴルバット", 43: "ナゾノクサ", 44: "クサイハナ", 45: "ラフレシア", 46: "パラス", 47: "パラセクト", 48: "コンパン", 49: "モルフォン", 50: "ディグダ", 51: "ダグトリオ", 52: "ニャース", 53: "ペルシアン", 54: "コダック", 55: "ゴルダック", 56: "マンキー", 57: "オコリザル", 58: "ガーディ", 59: "ウインディ", 60: "ニョロモ", 61: "ニョロゾ", 62: "ニョロボン", 63: "ケーシィ", 64: "ユンゲラー", 65: "フーディン", 66: "ワンリキー", 67: "ゴーリキー", 68: "カイリキー", 69: "マダツボミ", 70: "ウツドン", 71: "ウツボット", 72: "メノクラゲ", 73: "ドククラゲ", 74: "イシツブテ", 75: "ゴローン", 76: "ゴローニャ", 77: "ポニータ", 78: "ギャロップ", 79: "ヤドン", 80: "ヤドラン", 81: "コイル", 82: "レアコイル", 83: "カモネギ", 84: "ドードー", 85: "ドードリオ", 86: "パウワウ", 87: "ジュゴン", 88: "ベトベター", 89: "ベトベトン", 90: "シェルダー", 91: "パルシェン", 92: "ゴース", 93: "ゴースト", 94: "ゲンガー", 95: "イワーク", 96: "スリープ", 97: "スリーパー", 98: "クラブ", 99: "キングラー", 100: "ビリリダマ", 101: "マルマイン", 102: "タマタマ", 103: "ナッシー", 104: "カラカラ", 105: "ガラガラ", 106: "サワムラー", 107: "エビワラー", 108: "ベロリンガ", 109: "ドガース", 110: "マタドガス", 111: "サイホーン", 112: "サイドン", 113: "ラッキー", 114: "モンジャラ", 115: "ガルーラ", 116: "タッツー", 117: "シードラ", 118: "トサキント", 119: "アズマオウ", 120: "ヒトデマン", 121: "スターミー", 122: "バリヤード", 123: "ストライク", 124: "ルージュラ", 125: "エレブー", 126: "ブーバー", 127: "カイロス", 128: "ケンタロス", 129: "コイキング", 130: "ギャラドス", 131: "ラプラス", 132: "メタモン", 133: "イーブイ", 134: "シャワーズ", 135: "サンダース", 136: "ブースター", 137: "ポリゴン", 138: "オムナイト", 139: "オムスター", 140: "カブト", 141: "カブトプス", 142: "プテラ", 143: "カビゴン", 144: "フリーザー", 145: "サンダー", 146: "ファイヤー", 147: "ミニリュウ", 148: "ハクリュー", 149: "カイリュー", 150: "ミュウツー", 151: "ミュウ", 152: "チコリータ", 153: "ベイリーフ", 154: "メガニウム", 155: "ヒノアラシ", 156: "マグマラシ", 157: "バクフーン", 158: "ワニノコ", 159: "アリゲイツ", 160: "オーダイル", 161: "オタチ", 162: "オオタチ", 163: "ホーホー", 164: "ヨルノズク", 165: "レディバ", 166: "レディアン", 167: "イトマル", 168: "アリアドス", 169: "クロバット", 170: "チョンチー", 171: "ランターン", 172: "ピチュー", 173: "ピィ", 174: "ププリン", 175: "トゲピー", 176: "トゲチック", 177: "ネイティ", 178: "ネイティオ", 179: "メリープ", 180: "モココ", 181: "デンリュウ", 182: "キレイハナ", 183: "マリル", 184: "マリルリ", 185: "ウソッキー", 186: "ニョロトノ", 187: "ハネッコ", 188: "ポポッコ", 189: "ワタッコ", 190: "エイパム", 191: "ヒマナッツ", 192: "キマワリ", 193: "ヤンヤンマ", 194: "ウパー", 195: "ヌオー", 196: "エーフィ", 197: "ブラッキー", 198: "ヤミカラス", 199: "ヤドキング", 200: "ムウマ", 201: "アンノーン", 202: "ソーナンス", 203: "キリンリキ", 204: "クヌギダマ", 205: "フォレトス", 206: "ノコッチ", 207: "グライガー", 208: "ハガネール", 209: "ブルー", 210: "グランブル", 211: "ハリーセン", 212: "ハッサム", 213: "ツボツボ", 214: "ヘラクロス", 215: "ニューラ", 216: "ヒメグマ", 217: "リングマ", 218: "マグマッグ", 219: "マグカルゴ", 220: "ウリムー", 221: "イノムー", 222: "サニーゴ", 223: "テッポウオ", 224: "オクタン", 225: "デリバード", 226: "マンタイン", 227: "エアームド", 228: "デルビル", 229: "ヘルガー", 230: "キングドラ", 231: "ゴマゾウ", 232: "ドンファン", 233: "ポリゴン2", 234: "オドシシ", 235: "ドーブル", 236: "バルキー", 237: "カポエラー", 238: "ムチュール", 239: "エレキッド", 240: "ブビィ", 241: "ミルタンク", 242: "ハピナス", 243: "ライコウ", 244: "エンテイ", 245: "スイクン", 246: "ヨーギラス", 247: "サナギラス", 248: "バンギラス", 249: "ルギア", 250: "ホウオウ", 251: "セレビィ", 252: "キモリ", 253: "ジュプトル", 254: "ジュカイン", 255: "アチャモ", 256: "ワカシャモ", 257: "バシャーモ", 258: "ミズゴロウ", 259: "ヌマクロー", 260: "ラグラージ", 261: "ポチエナ", 262: "グラエナ", 263: "ジグザグマ", 264: "マッスグマ", 265: "ケムッソ", 266: "カラサリス", 267: "アゲハント", 268: "マユルド", 269: "ドクケイル", 270: "ハスボー", 271: "ハスブレロ", 272: "ルンパッパ", 273: "タネボー", 274: "コノハナ", 275: "ダーテング", 276: "スバメ", 277: "オオスバメ", 278: "キャモメ", 279: "ペリッパー", 280: "ラルトス", 281: "キルリア", 282: "サーナイト", 283: "アメタマ", 284: "アメモース", 285: "キノココ", 286: "キノガッサ", 287: "ナマケロ", 288: "ヤルキモノ", 289: "ケッキング", 290: "ツチニン", 291: "テッカニン", 292: "ヌケニン", 293: "ゴニョニョ", 294: "ドゴーム", 295: "バクオング", 296: "マクノシタ", 297: "ハリテヤマ", 298: "ルリリ", 299: "ノズパス", 300: "エネコ", 301: "エネコロロ", 302: "ヤミラミ", 303: "クチート", 304: "ココドラ", 305: "コドラ", 306: "ボスゴドラ", 307: "アサナン", 308: "チャーレム", 309: "ラクライ", 310: "ライボルト", 311: "プラスル", 312: "マイナン", 313: "バルビート", 314: "イルミーゼ", 315: "ロゼリア", 316: "ゴクリン", 317: "マルノーム", 318: "キバニア", 319: "サメハダー", 320: "ホエルコ", 321: "ホエルオー", 322: "ドンメル", 323: "バクーダ", 324: "コータス", 325: "バネブー", 326: "ブーピッグ", 327: "パッチール", 328: "ナックラー", 329: "ビブラーバ", 330: "フライゴン", 331: "サボネア", 332: "ノクタス", 333: "チルット", 334: "チルタリス", 335: "ザングース", 336: "ハブネーク", 337: "ルナトーン", 338: "ソルロック", 339: "ドジョッチ", 340: "ナマズン", 341: "ヘイガニ", 342: "シザリガー", 343: "ヤジロン", 344: "ネンドール", 345: "リリーラ", 346: "ユレイドル", 347: "アノプス", 348: "アーマルド", 349: "ヒンバス", 350: "ミロカロス", 351: "ポワルン", 352: "カクレオン", 353: "カゲボウズ", 354: "ジュペッタ", 355: "ヨマワル", 356: "サマヨール", 357: "トロピウス", 358: "チリーン", 359: "アブソル", 360: "ソーナノ", 361: "ユキワラシ", 362: "オニゴーリ", 363: "タマザラシ", 364: "トドグラー", 365: "トドゼルガ", 366: "パールル", 367: "ハンテール", 368: "サクラビス", 369: "ジーランス", 370: "ラブカス", 371: "タツベイ", 372: "コモルー", 373: "ボーマンダ", 374: "ダンバル", 375: "メタング", 376: "メタグロス", 377: "レジロック", 378: "レジアイス", 379: "レジスチル", 380: "ラティアス", 381: "ラティオス", 382: "カイオーガ", 383: "グラードン", 384: "レックウザ", 385: "ジラーチ", 386: "デオキシス", 387: "ナエトル", 388: "ハヤシガメ", 389: "ドダイトス", 390: "ヒコザル", 391: "モウカザル", 392: "ゴウカザル", 393: "ポッチャマ", 394: "ポッタイシ", 395: "エンペルト", 396: "ムックル", 397: "ムクバード", 398: "ムクホーク", 399: "ビッパ", 400: "ビーダル", 401: "コロボーシ", 402: "コロトック", 403: "コリンク", 404: "ルクシオ", 405: "レントラー", 406: "スボミー", 407: "ロズレイド", 408: "ズガイドス", 409: "ラムパルド", 410: "タテトプス", 411: "トリデプス", 412: "ミノムッチ", 413: "ミノマダム", 414: "ガーメイル", 415: "ミツハニー", 416: "ビークイン", 417: "パチリス", 418: "ブイゼル", 419: "フローゼル", 420: "チェリンボ", 421: "チェリム", 422: "カラナクシ", 423: "トリトドン", 424: "エテボース", 425: "フワンテ", 426: "フワライド", 427: "ミミロル", 428: "ミミロップ", 429: "ムウマージ", 430: "ドンカラス", 431: "ニャルマー", 432: "ブニャット", 433: "リーシャン", 434: "スカンプー", 435: "スカタンク", 436: "ドーミラー", 437: "ドータクン", 438: "ウソハチ", 439: "マネネ", 440: "ピンプク", 441: "ペラップ", 442: "ミカルゲ", 443: "フカマル", 444: "ガバイト", 445: "ガブリアス", 446: "ゴンベ", 447: "リオル", 448: "ルカリオ", 449: "ヒポポタス", 450: "カバルドン", 451: "スコルピ", 452: "ドラピオン", 453: "グレッグル", 454: "ドクロッグ", 455: "マスキッパ", 456: "ケイコウオ", 457: "ネオラント", 458: "タマンタ", 459: "ユキカブリ", 460: "ユキノオー", 461: "マニューラ", 462: "ジバコイル", 463: "ベロベルト", 464: "ドサイドン", 465: "モジャンボ", 466: "エレキブル", 467: "ブーバーン", 468: "トゲキッス", 469: "メガヤンマ", 470: "リーフィア", 471: "グレイシア", 472: "グライオン", 473: "マンムー", 474: "ポリゴンZ", 475: "エルレイド", 476: "ダイノーズ", 477: "ヨノワール", 478: "ユキメノコ", 479: "ロトム", 480: "ユクシー", 481: "エムリット", 482: "アグノム", 483: "ディアルガ", 484: "パルキア", 485: "ヒードラン", 486: "レジギガス", 487: "ギラティナ", 488: "クレセリア", 489: "フィオネ", 490: "マナフィ", 491: "ダークライ", 492: "シェイミ", 493: "アルセウス", 494: "ビクティニ", 495: "ツタージャ", 496: "ジャノビー", 497: "ジャローダ", 498: "ポカブ", 499: "チャオブー", 500: "エンブオー", 501: "ミジュマル", 502: "フタチマル", 503: "ダイケンキ", 504: "ミネズミ", 505: "ミルホッグ", 506: "ヨーテリー", 507: "ハーデリア", 508: "ムーランド", 509: "チョロネコ", 510: "レパルダス", 511: "ヤナップ", 512: "ヤナッキー", 513: "バオップ", 514: "バオッキー", 515: "ヒヤップ", 516: "ヒヤッキー", 517: "ムンナ", 518: "ムシャーナ", 519: "マメパト", 520: "ハトーボー", 521: "ケンホロウ", 522: "シママ", 523: "ゼブライカ", 524: "ダンゴロ", 525: "ガントル", 526: "ギガイアス", 527: "コロモリ", 528: "ココロモリ", 529: "モグリュー", 530: "ドリュウズ", 531: "タブンネ", 532: "ドッコラー", 533: "ドテッコツ", 534: "ローブシン", 535: "オタマロ", 536: "ガマガル", 537: "ガマゲロゲ", 538: "ナゲキ", 539: "ダゲキ", 540: "クルミル", 541: "クルマユ", 542: "ハハコモリ", 543: "フシデ", 544: "ホイーガ", 545: "ペンドラー", 546: "モンメン", 547: "エルフーン", 548: "チュリネ", 549: "ドレディア", 550: "バスラオ", 551: "メグロコ", 552: "ワルビル", 553: "ワルビアル", 554: "ダルマッカ", 555: "ヒヒダルマ", 556: "マラカッチ", 557: "イシズマイ", 558: "イワパレス", 559: "ズルッグ", 560: "ズルズキン", 561: "シンボラー", 562: "デスマス", 563: "デスカーン", 564: "プロトーガ", 565: "アバゴーラ", 566: "アーケン", 567: "アーケオス", 568: "ヤブクロン", 569: "ダストダス", 570: "ゾロア", 571: "ゾロアーク", 572: "チラーミィ", 573: "チラチーノ", 574: "ゴチム", 575: "ゴチミル", 576: "ゴチルゼル", 577: "ユニラン", 578: "ダブラン", 579: "ランクルス", 580: "コアルヒー", 581: "スワンナ", 582: "バニプッチ", 583: "バニリッチ", 584: "バイバニラ", 585: "シキジカ", 586: "メブキジカ", 587: "エモンガ", 588: "カブルモ", 589: "シュバルゴ", 590: "タマゲタケ", 591: "モロバレル", 592: "プルリル", 593: "ブルンゲル", 594: "ママンボウ", 595: "バチュル", 596: "デンチュラ", 597: "テッシード", 598: "ナットレイ", 599: "ギアル", 600: "ギギアル", 601: "ギギギアル", 602: "シビシラス", 603: "シビビール", 604: "シビルドン", 605: "リグレー", 606: "オーベム", 607: "ヒトモシ", 608: "ランプラー", 609: "シャンデラ", 610: "キバゴ", 611: "オノンド", 612: "オノノクス", 613: "クマシュン", 614: "ツンベアー", 615: "フリージオ", 616: "チョボマキ", 617: "アギルダー", 618: "マッギョ", 619: "コジョフー", 620: "コジョンド", 621: "クリムガン", 622: "ゴビット", 623: "ゴルーグ", 624: "コマタナ", 625: "キリキザン", 626: "バッフロン", 627: "ワシボン", 628: "ウォーグル", 629: "バルチャイ", 630: "バルジーナ", 631: "クイタラン", 632: "アイアント", 633: "モノズ", 634: "ジヘッド", 635: "サザンドラ", 636: "メラルバ", 637: "ウルガモス", 638: "コバルオン", 639: "テラキオン", 640: "ビリジオン", 641: "トルネロス", 642: "ボルトロス", 643: "レシラム", 644: "ゼクロム", 645: "ランドロス", 646: "キュレム", 647: "ケルディオ", 648: "メロエッタ", 649: "ゲノセクト", 650: "ハリマロン", 651: "ハリボーグ", 652: "ブリガロン", 653: "フォッコ", 654: "テールナー", 655: "マフォクシー", 656: "ケロマツ", 657: "ゲコガシラ", 658: "ゲッコウガ", 659: "ホルビー", 660: "ホルード", 661: "ヤヤコマ", 662: "ヒノヤコマ", 663: "ファイアロー", 664: "コフキムシ", 665: "コフーライ", 666: "ビビヨン", 667: "シシコ", 668: "カエンジシ", 669: "フラベベ", 670: "フラエッテ", 671: "フラージェス", 672: "メェークル", 673: "ゴーゴート", 674: "ヤンチャム", 675: "ゴロンダ", 676: "トリミアン", 677: "ニャスパー", 678: "ニャオニクス", 679: "ヒトツキ", 680: "ニダンギル", 681: "ギルガルド", 682: "シュシュプ", 683: "フレフワン", 684: "ペロッパフ", 685: "ペロリーム", 686: "マーイーカ", 687: "カラマネロ", 688: "カメテテ", 689: "ガメノデス", 690: "クズモー", 691: "ドラミドロ", 692: "ウデッポウ", 693: "ブロスター", 694: "エリキテル", 695: "エレザード", 696: "チゴラス", 697: "ガチゴラス", 698: "アマルス", 699: "アマルルガ", 700: "ニンフィア", 701: "ルチャブル", 702: "デデンネ", 703: "メレシー", 704: "ヌメラ", 705: "ヌメイル", 706: "ヌメルゴン", 707: "クレッフィ", 708: "ボクレー", 709: "オーロット", 710: "バケッチャ", 711: "パンプジン", 712: "カチコール", 713: "クレベース", 714: "オンバット", 715: "オンバーン", 716: "ゼルネアス", 717: "イベルタル", 718: "ジガルデ", 719: "ディアンシー", 720: "フーパ", 721: "ボルケニオン", 722: "モクロー", 723: "フクスロー", 724: "ジュナイパー", 725: "ニャビー", 726: "ニャヒート", 727: "ガオガエン", 728: "アシマリ", 729: "オシャマリ", 730: "アシレーヌ", 731: "ツツケラ", 732: "ケララッパ", 733: "ドデカバシ", 734: "ヤングース", 735: "デカグース", 736: "アゴジムシ", 737: "デンヂムシ", 738: "クワガノン", 739: "マケンカニ", 740: "ケケンカニ", 741: "オドリドリ", 742: "アブリー", 743: "アブリボン", 744: "イワンコ", 745: "ルガルガン", 746: "ヨワシ", 747: "ヒドイデ", 748: "ドヒドイデ", 749: "ドロバンコ", 750: "バンバドロ", 751: "シズクモ", 752: "オニシズクモ", 753: "カリキリ", 754: "ラランテス", 755: "ネマシュ", 756: "マシェード", 757: "ヤトウモリ", 758: "エンニュート", 759: "ヌイコグマ", 760: "キテルグマ", 761: "アマカジ", 762: "アママイコ", 763: "アマージョ", 764: "キュワワー", 765: "ヤレユータン", 766: "ナゲツケサル", 767: "コソクムシ", 768: "グソクムシャ", 769: "スナバァ", 770: "シロデスナ", 771: "ナマコブシ", 772: "タイプ:ヌル", 773: "シルヴァディ", 774: "メテノ", 775: "ネッコアラ", 776: "バクガメス", 777: "トゲデマル", 778: "ミミッキュ", 779: "ハギギシリ", 780: "ジジーロン", 781: "ダダリン", 782: "ジャラコ", 783: "ジャランゴ", 784: "ジャラランガ", 785: "カプ・コケコ", 786: "カプ・テテフ", 787: "カプ・ブルル", 788: "カプ・レヒレ", 789: "コスモッグ", 790: "コスモウム", 791: "ソルガレオ", 792: "ルナアーラ", 793: "ウツロイド", 794: "マッシブーン", 795: "フェローチェ", 796: "デンジュモク", 797: "テッカグヤ", 798: "カミツルギ", 799: "アクジキング", 800: "ネクロズマ", 801: "マギアナ", 802: "マーシャドー", 803: "ベベノム", 804: "アーゴヨン", 805: "ツンデツンデ", 806: "ズガドーン", 807: "ゼラオラ", 808: "メルタン", 809: "メルメタル", 810: "サルノリ", 811: "バチンキー", 812: "ゴリランダー", 813: "ヒバニー", 814: "ラビフット", 815: "エースバーン", 816: "メッソン", 817: "ジメレオン", 818: "インテレオン", 819: "ホシガリス", 820: "ヨクバリス", 821: "ココガラ", 822: "アオガラス", 823: "アーマーガア", 824: "サッチムシ", 825: "レドームシ", 826: "イオルブ", 827: "クスネ", 828: "フォクスライ", 829: "ヒメンカ", 830: "ワタシラガ", 831: "ウールー", 832: "バイウールー", 833: "カムカメ", 834: "カジリガメ", 835: "ワンパチ", 836: "パルスワン", 837: "タンドン", 838: "トロッゴン", 839: "セキタンザン", 840: "カジッチュ", 841: "アップリュー", 842: "タルップル", 843: "スナヘビ", 844: "サダイジャ", 845: "ウッウ", 846: "サシカマス", 847: "カマスジョー", 848: "エレズン", 849: "ストリンダー", 850: "ヤクデ", 851: "マルヤクデ", 852: "タタッコ", 853: "オトスパス", 854: "ヤバチャ", 855: "ポットデス", 856: "ミブリム", 857: "テブリム", 858: "ブリムオン", 859: "ベロバー", 860: "ギモー", 861: "オーロンゲ", 862: "タチフサグマ", 863: "ニャイキング", 864: "サニゴーン", 865: "ネギガナイト", 866: "バリコオル", 867: "デスバーン", 868: "マホミル", 869: "マホイップ", 870: "タイレーツ", 871: "バチンウニ", 872: "ユキハミ", 873: "モスノウ", 874: "イシヘンジン", 875: "コオリッポ", 876: "イエッサン", 877: "モルペコ", 878: "ゾウドウ", 879: "ダイオウドウ", 880: "パッチラゴン", 881: "パッチルドン", 882: "ウオノラゴン", 883: "ウオチルドン", 884: "ジュラルドン", 885: "ドラメシヤ", 886: "ドロンチ", 887: "ドラパルト", 888: "ザシアン", 889: "ザマゼンタ", 890: "ムゲンダイナ", 891: "ダクマ", 892: "ウーラオス", 893: "ザルード", 894: "レジエレキ", 895: "レジドラゴ", 896: "ブリザポス", 897: "レイスポス", 898: "バドレックス", 899: "アヤシシ", 900: "バサギリ", 901: "ガチグマ", 902: "イダイトウ", 903: "オオニューラ", 904: "ハリーマン", 905: "ラブトロス", 906: "ニャオハ", 907: "ニャローテ", 908: "マスカーニャ", 909: "ホゲータ", 910: "アチゲータ", 911: "ラウドボーン", 912: "クワッス", 913: "ウェルカモ", 914: "ウェーニバル", 915: "グルトン", 916: "パフュートン", 917: "タマンチュラ", 918: "ワナイダー", 919: "マメバッタ", 920: "エクスレッグ", 921: "パモ", 922: "パモット", 923: "パーモット", 924: "ワッカネズミ", 925: "イッカネズミ", 926: "パピモッチ", 927: "バウッツェル", 928: "ミニーブ", 929: "オリーニョ", 930: "オリーヴァ", 931: "イキリンコ", 932: "コジオ", 933: "ジオヅム", 934: "キョジオーン", 935: "カルボウ", 936: "グレンアルマ", 937: "ソウブレイズ", 938: "ズピカ", 939: "ハラバリー", 940: "カイデン", 941: "タイカイデン", 942: "オラチフ", 943: "マフィティフ", 944: "シルシュルー", 945: "タギングル", 946: "アノクサ", 947: "アノホラグサ", 948: "ノノクラゲ", 949: "リククラゲ", 950: "ガケガニ", 951: "カプサイジ", 952: "スコヴィラン", 953: "シガロコ", 954: "ベラカス", 955: "ヒラヒナ", 956: "クエスパトラ", 957: "カヌチャン", 958: "ナカヌチャン", 959: "デカヌチャン", 960: "ウミディグダ", 961: "ウミトリオ", 962: "オトシドリ", 963: "ナミイルカ", 964: "イルカマン", 965: "ブロロン", 966: "ブロロローム", 967: "モトトカゲ", 968: "ミミズズ", 969: "キラーメ", 970: "キラフロル", 971: "ボチ", 972: "ハカドッグ", 973: "カラミンゴ", 974: "アルクジラ", 975: "ハルクジラ", 976: "ミガルーサ", 977: "ヘイラッシャ", 978: "シャリタツ", 979: "コノヨザル", 980: "ドオー", 981: "リキキリン", 982: "ノココッチ", 983: "ドドゲザン", 984: "イダイナキバ", 985: "サケブシッポ", 986: "アラブルタケ", 987: "ハバタクカミ", 988: "チヲハウハネ", 989: "スナノケガワ", 990: "テツノワダチ", 991: "テツノツツミ", 992: "テツノカイナ", 993: "テツノコウベ", 994: "テツノドクガ", 995: "テツノイバラ", 996: "セビエ", 997: "セゴール", 998: "セグレイブ", 999: "コレクレー", 1000: "サーフゴー", 1001: "チオンジェン", 1002: "パオジアン", 1003: "ディンルー", 1004: "イーユイ", 1005: "トドロクツキ", 1006: "テツノブジン", 1007: "コライドン", 1008: "ミライドン", 1009: "ウネルミナモ", 1010: "テツノイサハ", 1011: "カミッチュ", 1012: "チャデス", 1013: "ヤバソチャ", 1014: "イイネイヌ", 1015: "マシマシラ", 1016: "キチキギス", 1017: "オーガポン", 1018: "ブリジュラス", 1019: "カミツオロチ", 1020: "ウガツホムラ", 1021: "タケルライコ", 1022: "テツノイワオ", 1023: "テツノカシラ", 1024: "テラパゴス", 1025: "モモワロウ", } class Xoroshiro: def __init__(self, s0=secrets.randbits(64), s1=secrets.randbits(64)): self.seed = [s0, 0x82A2B175229D6A5B] @staticmethod def rotl(x, k): return ((x << k) | (x >> (64 - k))) & 0xFFFFFFFFFFFFFFFF @staticmethod def nextP2(x): x -= 1 for i in range(6): x |= x >> (1 << i) return x def next(self): s0, s1 = self.seed r = (s0 + s1) & 0xFFFFFFFFFFFFFFFF s1 ^= s0 self.seed[0] = self.rotl(s0, 24) ^ s1 ^ ((s1 << 16) & 0xFFFFFFFFFFFFFFFF) self.seed[1] = self.rotl(s1, 37) return r def nextInt(self, num=0xFFFFFFFF): num2 = self.nextP2(num); s = self.next() & num2 while s >= num: s = self.next() & num2 return s def getSV(tid, pid): sid, tid = (tid >> 16), (tid & 0xffff) hid, lid = (pid >> 16), (pid & 0xffff) return tid ^ sid ^ lid ^ hid def get_state(): buf = [] for _ in range(20000): # 回しすぎない(起動を軽く) s0 = secrets.randbits(64) rng = Xoroshiro(s0); rng.nextInt() tid = rng.nextInt(); pid = rng.nextInt() if getSV(tid, pid) < 0x10: buf.append(s0) if len(buf) >= 128: # 必要分だけ break return buf states = get_state() _busy = False file_idx = 0 def dump_memory(base_addr: int, size: int, filename: str = "memdump.bin"): """ 現在のGDBセッションから、指定範囲のメモリを読み取ってローカルに保存する。 :param base_addr: 読み込み開始アドレス(整数) :param size: ダンプサイズ(バイト単位) :param filename: 保存先ファイル名 """ inferior = gdb.selected_inferior() print(f"[+] dumping memory: 0x{base_addr:x} - 0x{base_addr+size:x} ({size} bytes) → {filename}") try: data = inferior.read_memory(base_addr, size).tobytes() except gdb.MemoryError as e: raise gdb.GdbError(f"memory read failed at 0x{base_addr:x}: {e}") with open(filename, "wb") as f: f.write(data) print(f"[✓] dump completed: {len(data)} bytes written to {filename}") def get_species(reg_base: str = "x19", imm: int = 0x2a) -> int: global file_idx base = int(gdb.parse_and_eval(f"${reg_base}")) #print("x19", hex(base)) #dump_memory(base, 0x1000, "%10x_%d.bin"%(base, file_idx)) #file_idx += 1 addr = (base + int(imm)) & ((1 << 64) - 1) inferior = gdb.selected_inferior() try: b = inferior.read_memory(addr, 2).tobytes() except gdb.MemoryError as e: raise gdb.GdbError(f"memory read failed at {addr:#x}: {e}") value = int.from_bytes(b, byteorder="little") print(value, POKEDEX[value]) return value, POKEDEX[value] def _continue_later(): global _busy try: gdb.execute("continue", from_tty=False, to_string=True) finally: _busy = False def on_stop(event): global _busy target_pokemon = [ 376, #メタグロス ] if not isinstance(event, gdb.BreakpointEvent): return try: bps = getattr(event, "breakpoints", []) or [] if bps: print(f"[break] hit bp#{bps[0].number} at {bps[0].location}") else: print("[break] hit (no bp info)") except Exception as e: gdb.write(f"[auto] print error: {e}\n") try: if not states: states[:] = get_state() idx, pokemon = get_species() if idx in target_pokemon: s0 = states.pop(0) gdb.execute(f"set $x8 = 0x{s0:x}", to_string=True) except Exception as e: gdb.write(f"[auto] handler error: {e}\n") if not _busy: _busy = True gdb.post_event(_continue_later) try: gdb.events.stop.disconnect(on_stop) except Exception: pass gdb.events.stop.connect(on_stop) print("[auto-continue] installed: printing every breakpoint hit.") """ usage aarch64-none-elf-gdb-py target extended-remote 192.168.x.x:22225 monitor wait application attach 0xNN monitor get info set $main_app_base = (unsigned long)$main_app_addr b *$main_app_base + 0x69b748 source auto_shiny.py # inject continue """