Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Как же достучаться до нативного метода? Пораскинув мозгами, Штирлиц решил качать Android SDK.
(cmd % 8) + (cmd / 8) (cmd берётся, включая бит номера пакета)
DCW 0, 0x1E, 0x2D, 0x33, 0x4C, 0x52, 0x61, 0x7F, 0x8B, 0x95, 0xA6, 0xB8, 0xC7, 0xD9, 0xEA, 0xF4
DCW 0x10A, 0x114, 0x127, 0x139, 0x146, 0x158, 0x16B, 0x175, 0x181, 0x19F, 0x1AC, 0x1B2, 0x1CD, 0x1D3, 0x1E0, 0x1FE
DCW 0x209, 0x217, 0x224, 0x23A, 0x245, 0x25B, 0x268, 0x276, 0x282, 0x29C, 0x2AF, 0x2B1, 0x2CE, 0x2D0, 0x2E3, 0x2FD
DCW 0x303, 0x31D, 0x32E, 0x330, 0x34F, 0x351, 0x362, 0x37C, 0x388, 0x396, 0x3A5, 0x3BB, 0x3C4, 0x3DA, 0x3E9, 0x3F7
DCW 0x407, 0x419, 0x42A, 0x434, 0x44B, 0x455, 0x466, 0x478, 0x48C, 0x492, 0x4A1, 0x4BF, 0x4C0, 0x4DE, 0x4ED, 0x4F3
DCW 0x50D, 0x513, 0x520, 0x53E, 0x541, 0x55F, 0x56C, 0x572, 0x586, 0x598, 0x5AB, 0x5B5, 0x5CA, 0x5D4, 0x5E7, 0x5F9
DCW 0x60E, 0x610, 0x623, 0x63D, 0x642, 0x65C, 0x66F, 0x671, 0x685, 0x69B, 0x6A8, 0x6B6, 0x6C9, 0x6D7, 0x6E4, 0x6FA
DCW 0x704, 0x71A, 0x729, 0x737, 0x748, 0x756, 0x765, 0x77B, 0x78F, 0x791, 0x7A2, 0x7BC, 0x7C3, 0x7DD, 0x7EE, 0x7F0
DCW 0x806, 0x818, 0x82B, 0x835, 0x84A, 0x854, 0x867, 0x879, 0x88D, 0x893, 0x8A0, 0x8BE, 0x8C1, 0x8DF, 0x8EC, 0x8F2
DCW 0x90C, 0x912, 0x921, 0x93F, 0x940, 0x95E, 0x96D, 0x973, 0x987, 0x999, 0x9AA, 0x9B4, 0x9CB, 0x9D5, 0x9E6, 0x9F8
DCW 0xA0F, 0xA11, 0xA22, 0xA3C, 0xA43, 0xA5D, 0xA6E, 0xA70, 0xA84, 0xA9A, 0xAA9, 0xAB7, 0xAC8, 0xAD6, 0xAE5, 0xAFB
DCW 0xB05, 0xB1B, 0xB28, 0xB36, 0xB49, 0xB57, 0xB64, 0xB7A, 0xB8E, 0xB90, 0xBA3, 0xBBD, 0xBC2, 0xBDC, 0xBEF, 0xBF1
DCW 0xC01, 0xC1F, 0xC2C, 0xC32, 0xC4D, 0xC53, 0xC60, 0xC7E, 0xC8A, 0xC94, 0xCA7, 0xCB9, 0xCC6, 0xCD8, 0xCEB, 0xCF5
DCW 0xD0B, 0xD15, 0xD26, 0xD38, 0xD47, 0xD59, 0xD6A, 0xD74, 0xD80, 0xD9E, 0xDAD, 0xDB3, 0xDCC, 0xDD2, 0xDE1, 0xDFF
DCW 0xE08, 0xE16, 0xE25, 0xE3B, 0xE44, 0xE5A, 0xE69, 0xE77, 0xE83, 0xE9D, 0xEAE, 0xEB0, 0xECF, 0xED1, 0xEE2, 0xEFC
DCW 0xF02, 0xF1C, 0xF2F, 0xF31, 0xF4E, 0xF50, 0xF63, 0xF7D, 0xF89, 0xF97, 0xFA4, 0xFBA, 0xFC5, 0xFDB, 0xFE8, 0xFF6
DCW 0x1005, 0x101B, 0x1028, 0x1036, 0x1049, 0x1057, 0x1064, 0x107A, 0x108E, 0x1090, 0x10A3, 0x10BD, 0x10C2, 0x10DC, 0x10EF, 0x10F1
DCW 0x110F, 0x1111, 0x1122, 0x113C, 0x1143, 0x115D, 0x116E, 0x1170, 0x1184, 0x119A, 0x11A9, 0x11B7, 0x11C8, 0x11D6, 0x11E5, 0x11FB
DCW 0x120C, 0x1212, 0x1221, 0x123F, 0x1240, 0x125E, 0x126D, 0x1273, 0x1287, 0x1299, 0x12AA, 0x12B4, 0x12CB, 0x12D5, 0x12E6, 0x12F8
DCW 0x1306, 0x1318, 0x132B, 0x1335, 0x134A, 0x1354, 0x1367, 0x1379, 0x138D, 0x1393, 0x13A0, 0x13BE, 0x13C1, 0x13DF, 0x13EC, 0x13F2
DCW 0x1402, 0x141C, 0x142F, 0x1431, 0x144E, 0x1450, 0x1463, 0x147D, 0x1489, 0x1497, 0x14A4, 0x14BA, 0x14C5, 0x14DB, 0x14E8, 0x14F6
DCW 0x1508, 0x1516, 0x1525, 0x153B, 0x1544, 0x155A, 0x1569, 0x1577, 0x1583, 0x159D, 0x15AE, 0x15B0, 0x15CF, 0x15D1, 0x15E2, 0x15FC
DCW 0x160B, 0x1615, 0x1626, 0x1638, 0x1647, 0x1659, 0x166A, 0x1674, 0x1680, 0x169E, 0x16AD, 0x16B3, 0x16CC, 0x16D2, 0x16E1, 0x16FF
DCW 0x1701, 0x171F, 0x172C, 0x1732, 0x174D, 0x1753, 0x1760, 0x177E, 0x178A, 0x1794, 0x17A7, 0x17B9, 0x17C6, 0x17D8, 0x17EB, 0x17F5
DCW 0x1803, 0x181D, 0x182E, 0x1830, 0x184F, 0x1851, 0x1862, 0x187C, 0x1888, 0x1896, 0x18A5, 0x18BB, 0x18C4, 0x18DA, 0x18E9, 0x18F7
DCW 0x1909, 0x1917, 0x1924, 0x193A, 0x1945, 0x195B, 0x1968, 0x1976, 0x1982, 0x199C, 0x19AF, 0x19B1, 0x19CE, 0x19D0, 0x19E3, 0x19FD
DCW 0x1A0A, 0x1A14, 0x1A27, 0x1A39, 0x1A46, 0x1A58, 0x1A6B, 0x1A75, 0x1A81, 0x1A9F, 0x1AAC, 0x1AB2, 0x1ACD, 0x1AD3, 0x1AE0, 0x1AFE
DCW 0x1B00, 0x1B1E, 0x1B2D, 0x1B33, 0x1B4C, 0x1B52, 0x1B61, 0x1B7F, 0x1B8B, 0x1B95, 0x1BA6, 0x1BB8, 0x1BC7, 0x1BD9, 0x1BEA, 0x1BF4
DCW 0x1C04, 0x1C1A, 0x1C29, 0x1C37, 0x1C48, 0x1C56, 0x1C65, 0x1C7B, 0x1C8F, 0x1C91, 0x1CA2, 0x1CBC, 0x1CC3, 0x1CDD, 0x1CEE, 0x1CF0
DCW 0x1D0E, 0x1D10, 0x1D23, 0x1D3D, 0x1D42, 0x1D5C, 0x1D6F, 0x1D71, 0x1D85, 0x1D9B, 0x1DA8, 0x1DB6, 0x1DC9, 0x1DD7, 0x1DE4, 0x1DFA
DCW 0x1E0D, 0x1E13, 0x1E20, 0x1E3E, 0x1E41, 0x1E5F, 0x1E6C, 0x1E72, 0x1E86, 0x1E98, 0x1EAB, 0x1EB5, 0x1ECA, 0x1ED4, 0x1EE7, 0x1EF9
DCW 0x1F07, 0x1F19, 0x1F2A, 0x1F34, 0x1F4B, 0x1F55, 0x1F66, 0x1F78, 0x1F8C, 0x1F92, 0x1FA1, 0x1FBF, 0x1FC0, 0x1FDE, 0x1FED, 0x1FF3
DCW 0x2003, 0x201D, 0x202E, 0x2030, 0x204F, 0x2051, 0x2062, 0x207C, 0x2088, 0x2096, 0x20A5, 0x20BB, 0x20C4, 0x20DA, 0x20E9, 0x20F7
DCW 0x2109, 0x2117, 0x2124, 0x213A, 0x2145, 0x215B, 0x2168, 0x2176, 0x2182, 0x219C, 0x21AF, 0x21B1, 0x21CE, 0x21D0, 0x21E3, 0x21FD
DCW 0x220A, 0x2214, 0x2227, 0x2239, 0x2246, 0x2258, 0x226B, 0x2275, 0x2281, 0x229F, 0x22AC, 0x22B2, 0x22CD, 0x22D3, 0x22E0, 0x22FE
DCW 0x2300, 0x231E, 0x232D, 0x2333, 0x234C, 0x2352, 0x2361, 0x237F, 0x238B, 0x2395, 0x23A6, 0x23B8, 0x23C7, 0x23D9, 0x23EA, 0x23F4
DCW 0x2404, 0x241A, 0x2429, 0x2437, 0x2448, 0x2456, 0x2465, 0x247B, 0x248F, 0x2491, 0x24A2, 0x24BC, 0x24C3, 0x24DD, 0x24EE, 0x24F0
DCW 0x250E, 0x2510, 0x2523, 0x253D, 0x2542, 0x255C, 0x256F, 0x2571, 0x2585, 0x259B, 0x25A8, 0x25B6, 0x25C9, 0x25D7, 0x25E4, 0x25FA
DCW 0x260D, 0x2613, 0x2620, 0x263E, 0x2641, 0x265F, 0x266C, 0x2672, 0x2686, 0x2698, 0x26AB, 0x26B5, 0x26CA, 0x26D4, 0x26E7, 0x26F9
DCW 0x2707, 0x2719, 0x272A, 0x2734, 0x274B, 0x2755, 0x2766, 0x2778, 0x278C, 0x2792, 0x27A1, 0x27BF, 0x27C0, 0x27DE, 0x27ED, 0x27F3
DCW 0x2805, 0x281B, 0x2828, 0x2836, 0x2849, 0x2857, 0x2864, 0x287A, 0x288E, 0x2890, 0x28A3, 0x28BD, 0x28C2, 0x28DC, 0x28EF, 0x28F1
DCW 0x290F, 0x2911, 0x2922, 0x293C, 0x2943, 0x295D, 0x296E, 0x2970, 0x2984, 0x299A, 0x29A9, 0x29B7, 0x29C8, 0x29D6, 0x29E5, 0x29FB
DCW 0x2A0C, 0x2A12, 0x2A21, 0x2A3F, 0x2A40, 0x2A5E, 0x2A6D, 0x2A73, 0x2A87, 0x2A99, 0x2AAA, 0x2AB4, 0x2ACB, 0x2AD5, 0x2AE6, 0x2AF8
DCW 0x2B06, 0x2B18, 0x2B2B, 0x2B35, 0x2B4A, 0x2B54, 0x2B67, 0x2B79, 0x2B8D, 0x2B93, 0x2BA0, 0x2BBE, 0x2BC1, 0x2BDF, 0x2BEC, 0x2BF2
DCW 0x2C02, 0x2C1C, 0x2C2F, 0x2C31, 0x2C4E, 0x2C50, 0x2C63, 0x2C7D, 0x2C89, 0x2C97, 0x2CA4, 0x2CBA, 0x2CC5, 0x2CDB, 0x2CE8, 0x2CF6
DCW 0x2D08, 0x2D16, 0x2D25, 0x2D3B, 0x2D44, 0x2D5A, 0x2D69, 0x2D77, 0x2D83, 0x2D9D, 0x2DAE, 0x2DB0, 0x2DCF, 0x2DD1, 0x2DE2, 0x2DFC
DCW 0x2E0B, 0x2E15, 0x2E26, 0x2E38, 0x2E47, 0x2E59, 0x2E6A, 0x2E74, 0x2E80, 0x2E9E, 0x2EAD, 0x2EB3, 0x2ECC, 0x2ED2, 0x2EE1, 0x2EFF
DCW 0x2F01, 0x2F1F, 0x2F2C, 0x2F32, 0x2F4D, 0x2F53, 0x2F60, 0x2F7E, 0x2F8A, 0x2F94, 0x2FA7, 0x2FB9, 0x2FC6, 0x2FD8, 0x2FEB, 0x2FF5
DCW 0x3006, 0x3018, 0x302B, 0x3035, 0x304A, 0x3054, 0x3067, 0x3079, 0x308D, 0x3093, 0x30A0, 0x30BE, 0x30C1, 0x30DF, 0x30EC, 0x30F2
DCW 0x310C, 0x3112, 0x3121, 0x313F, 0x3140, 0x315E, 0x316D, 0x3173, 0x3187, 0x3199, 0x31AA, 0x31B4, 0x31CB, 0x31D5, 0x31E6, 0x31F8
DCW 0x320F, 0x3211, 0x3222, 0x323C, 0x3243, 0x325D, 0x326E, 0x3270, 0x3284, 0x329A, 0x32A9, 0x32B7, 0x32C8, 0x32D6, 0x32E5, 0x32FB
DCW 0x3305, 0x331B, 0x3328, 0x3336, 0x3349, 0x3357, 0x3364, 0x337A, 0x338E, 0x3390, 0x33A3, 0x33BD, 0x33C2, 0x33DC, 0x33EF, 0x33F1
DCW 0x3401, 0x341F, 0x342C, 0x3432, 0x344D, 0x3453, 0x3460, 0x347E, 0x348A, 0x3494, 0x34A7, 0x34B9, 0x34C6, 0x34D8, 0x34EB, 0x34F5
DCW 0x350B, 0x3515, 0x3526, 0x3538, 0x3547, 0x3559, 0x356A, 0x3574, 0x3580, 0x359E, 0x35AD, 0x35B3, 0x35CC, 0x35D2, 0x35E1, 0x35FF
DCW 0x3608, 0x3616, 0x3625, 0x363B, 0x3644, 0x365A, 0x3669, 0x3677, 0x3683, 0x369D, 0x36AE, 0x36B0, 0x36CF, 0x36D1, 0x36E2, 0x36FC
DCW 0x3702, 0x371C, 0x372F, 0x3731, 0x374E, 0x3750, 0x3763, 0x377D, 0x3789, 0x3797, 0x37A4, 0x37BA, 0x37C5, 0x37DB, 0x37E8, 0x37F6
DCW 0x3800, 0x381E, 0x382D, 0x3833, 0x384C, 0x3852, 0x3861, 0x387F, 0x388B, 0x3895, 0x38A6, 0x38B8, 0x38C7, 0x38D9, 0x38EA, 0x38F4
DCW 0x390A, 0x3914, 0x3927, 0x3939, 0x3946, 0x3958, 0x396B, 0x3975, 0x3981, 0x399F, 0x39AC, 0x39B2, 0x39CD, 0x39D3, 0x39E0, 0x39FE
DCW 0x3A09, 0x3A17, 0x3A24, 0x3A3A, 0x3A45, 0x3A5B, 0x3A68, 0x3A76, 0x3A82, 0x3A9C, 0x3AAF, 0x3AB1, 0x3ACE, 0x3AD0, 0x3AE3, 0x3AFD
DCW 0x3B03, 0x3B1D, 0x3B2E, 0x3B30, 0x3B4F, 0x3B51, 0x3B62, 0x3B7C, 0x3B88, 0x3B96, 0x3BA5, 0x3BBB, 0x3BC4, 0x3BDA, 0x3BE9, 0x3BF7
DCW 0x3C07, 0x3C19, 0x3C2A, 0x3C34, 0x3C4B, 0x3C55, 0x3C66, 0x3C78, 0x3C8C, 0x3C92, 0x3CA1, 0x3CBF, 0x3CC0, 0x3CDE, 0x3CED, 0x3CF3
DCW 0x3D0D, 0x3D13, 0x3D20, 0x3D3E, 0x3D41, 0x3D5F, 0x3D6C, 0x3D72, 0x3D86, 0x3D98, 0x3DAB, 0x3DB5, 0x3DCA, 0x3DD4, 0x3DE7, 0x3DF9
DCW 0x3E0E, 0x3E10, 0x3E23, 0x3E3D, 0x3E42, 0x3E5C, 0x3E6F, 0x3E71, 0x3E85, 0x3E9B, 0x3EA8, 0x3EB6, 0x3EC9, 0x3ED7, 0x3EE4, 0x3EFA
DCW 0x3F04, 0x3F1A, 0x3F29, 0x3F37, 0x3F48, 0x3F56, 0x3F65, 0x3F7B, 0x3F8F, 0x3F91, 0x3FA2, 0x3FBC, 0x3FC3, 0x3FDD, 0x3FEE, 0x3FF0706 и 707. Как я понимаю, так он ищет собеседников (если поставить несколько Furby рядом, они должны найти друг друга и начать «разговор»). Почему команд две — этого я пока не знаю.Третий и заключительный бит посылки всегда равен 1032.Наверное, байт?
Поначалу оказалось, что в соседних командах числа иногда «прыгают», т.е. идут не так, как хотелось бы при последовательном инкрементировании чисел. После некоторого анализа стало понятно, что «ноты» надо нумеровать так, как на рисунке ниже
Кстати, о контрольных суммах: не проще ли было бы тупым перебором нагенерить вариантов команд, а потом скормить их этому зверю и посмотреть, на что он среагирует?Это для каждой команды дает 256 вариантов. Занятие очень утомительное, особенно когда нет гарантии, что даже на один из этих вариантов Furby как-то отреагирует. Сами команды отправляются небыстро, между ними нужны паузы, Furby не все их услышит, если будет в это время что-то делать свое и т.д. Это превратило бы увлекательное занятие в пытку.
Oo-tah-toh-toh. Kah way-loh.
История реверс-инжиниринга одного пушистого зверька