xmexg / xyks

小猿口算逆向笔记
70 stars 6 forks source link

关于match/v2加密 #9

Open xmexg opened 3 hours ago

xmexg commented 3 hours ago

7

下面这个脚本意外能解开最新的加密

 frida -U -n 小猿口算 -l .\anay_webview.js

image

首先复制下密文,得到

W251bGwseyJyZXN1bHQiOiJleUp3YTBsa1UzUnlJam9pTmpBNU5ETTRNVEkzTXpRMU16azNPREUzSWl3aWIzUm9aWEpWYzJWeUlqcDdJblZ6WlhKSlpDSTZNVEExXG5OakEwTkRJM01pd2lkWE5sY2s1aGJXVWlPaUxuakwvbHJwMDBOREkzTWlJc0ltRjJZWFJoY2xWeWJDSTZJbWgwZEhCek9pOHZiR1Z2XG5MVzl1YkdsdVpTNW1ZbU52Ym5SbGJuUXVZMjR2YkdWdkxXZGhiR3hsY25rdk1UWmhPV1prTURsaU1XUTRPVEpoTG5CdVp5SXNJblZ6XG5aWEpRWlc1a1lXNTBWWEpzSWpwdWRXeHNmU3dpYjNSb1pYSlhhVzVEYjNWdWRDSTZNQ3dpYzJWc1psZHBia052ZFc1MElqb3hNeXdpXG5kR0Z5WjJWMFEyOXpkRlJwYldVaU9qVXdNREF3TENKbGVHRnRWazhpT25zaWNHdEpaRk4wY2lJNklqWXdPVFF6T0RFeU56TTBOVE01XG5Oemd4TnlJc0luQnZhVzUwU1dRaU9qSXNJbkJ2YVc1MFRtRnRaU0k2SWpJdzVMdWw1WWFGNXBXdzU1cUU1cStVNWFTbjViQ1BJaXdpXG5jblZzWlZSNWNHVWlPakFzSW5GMVpYTjBhVzl1UTI1MElqb3hNQ3dpWTI5eWNtVmpkRU51ZENJNk1Dd2lZMjl6ZEZScGJXVWlPakFzXG5JbkYxWlhOMGFXOXVjeUk2VzNzaWFXUWlPakFzSW1WNFlXMUpaQ0k2TmpBNU5ETTRNVEkzTXpRMU16azNPREUzTENKamIyNTBaVzUwXG5Jam9pTVRWY1hHTnBjbU5zWlRFNUlpd2lZVzV6ZDJWeUlqb2lQQ0lzSW5WelpYSkJibk4zWlhJaU9tNTFiR3dzSW1GdWMzZGxjbk1pXG5PbHNpUENKZExDSnpkR0YwZFhNaU9qQXNJbk5qY21sd2RDSTZiblZzYkN3aWQzSnZibWRUWTNKcGNIUWlPbTUxYkd3c0luSjFiR1ZVXG5lWEJsSWpvaVEwOU5VRUZTUlNKOUxIc2lhV1FpT2pFc0ltVjRZVzFKWkNJNk5qQTVORE00TVRJM016UTFNemszT0RFM0xDSmpiMjUwXG5aVzUwSWpvaU1UQmNYR05wY21Oc1pUY2lMQ0poYm5OM1pYSWlPaUkrSWl3aWRYTmxja0Z1YzNkbGNpSTZiblZzYkN3aVlXNXpkMlZ5XG5jeUk2V3lJK0lsMHNJbk4wWVhSMWN5STZNQ3dpYzJOeWFYQjBJanB1ZFd4c0xDSjNjbTl1WjFOamNtbHdkQ0k2Ym5Wc2JDd2ljblZzXG5aVlI1Y0dVaU9pSkRUMDFRUVZKRkluMHNleUpwWkNJNk1pd2laWGhoYlVsa0lqbzJNRGswTXpneE1qY3pORFV6T1RjNE1UY3NJbU52XG5iblJsYm5RaU9pSTRYRnhqYVhKamJHVXhPQ0lzSW1GdWMzZGxjaUk2SWp3aUxDSjFjMlZ5UVc1emQyVnlJanB1ZFd4c0xDSmhibk4zXG5aWEp6SWpwYklqd2lYU3dpYzNSaGRIVnpJam93TENKelkzSnBjSFFpT201MWJHd3NJbmR5YjI1blUyTnlhWEIwSWpwdWRXeHNMQ0p5XG5kV3hsVkhsd1pTSTZJa05QVFZCQlVrVWlmU3g3SW1sa0lqb3pMQ0psZUdGdFNXUWlPall3T1RRek9ERXlOek0wTlRNNU56Z3hOeXdpXG5ZMjl1ZEdWdWRDSTZJalZjWEdOcGNtTnNaVEV6SWl3aVlXNXpkMlZ5SWpvaVBDSXNJblZ6WlhKQmJuTjNaWElpT201MWJHd3NJbUZ1XG5jM2RsY25NaU9sc2lQQ0pkTENKemRHRjBkWE1pT2pBc0luTmpjbWx3ZENJNmJuVnNiQ3dpZDNKdmJtZFRZM0pwY0hRaU9tNTFiR3dzXG5JbkoxYkdWVWVYQmxJam9pUTA5TlVFRlNSU0o5TEhzaWFXUWlPalFzSW1WNFlXMUpaQ0k2TmpBNU5ETTRNVEkzTXpRMU16azNPREUzXG5MQ0pqYjI1MFpXNTBJam9pTVRWY1hHTnBjbU5zWlRnaUxDSmhibk4zWlhJaU9pSStJaXdpZFhObGNrRnVjM2RsY2lJNmJuVnNiQ3dpXG5ZVzV6ZDJWeWN5STZXeUkrSWwwc0luTjBZWFIxY3lJNk1Dd2ljMk55YVhCMElqcHVkV3hzTENKM2NtOXVaMU5qY21sd2RDSTZiblZzXG5iQ3dpY25Wc1pWUjVjR1VpT2lKRFQwMVFRVkpGSW4wc2V5SnBaQ0k2TlN3aVpYaGhiVWxrSWpvMk1EazBNemd4TWpjek5EVXpPVGM0XG5NVGNzSW1OdmJuUmxiblFpT2lJeE1WeGNZMmx5WTJ4bE5pSXNJbUZ1YzNkbGNpSTZJajRpTENKMWMyVnlRVzV6ZDJWeUlqcHVkV3hzXG5MQ0poYm5OM1pYSnpJanBiSWo0aVhTd2ljM1JoZEhWeklqb3dMQ0p6WTNKcGNIUWlPbTUxYkd3c0luZHliMjVuVTJOeWFYQjBJanB1XG5kV3hzTENKeWRXeGxWSGx3WlNJNklrTlBUVkJCVWtVaWZTeDdJbWxrSWpvMkxDSmxlR0Z0U1dRaU9qWXdPVFF6T0RFeU56TTBOVE01XG5Oemd4Tnl3aVkyOXVkR1Z1ZENJNklqRTFYRnhqYVhKamJHVTJJaXdpWVc1emQyVnlJam9pUGlJc0luVnpaWEpCYm5OM1pYSWlPbTUxXG5iR3dzSW1GdWMzZGxjbk1pT2xzaVBpSmRMQ0p6ZEdGMGRYTWlPakFzSW5OamNtbHdkQ0k2Ym5Wc2JDd2lkM0p2Ym1kVFkzSnBjSFFpXG5PbTUxYkd3c0luSjFiR1ZVZVhCbElqb2lRMDlOVUVGU1JTSjlMSHNpYVdRaU9qY3NJbVY0WVcxSlpDSTZOakE1TkRNNE1USTNNelExXG5NemszT0RFM0xDSmpiMjUwWlc1MElqb2lOMXhjWTJseVkyeGxNVEVpTENKaGJuTjNaWElpT2lJOElpd2lkWE5sY2tGdWMzZGxjaUk2XG5iblZzYkN3aVlXNXpkMlZ5Y3lJNld5SThJbDBzSW5OMFlYUjFjeUk2TUN3aWMyTnlhWEIwSWpwdWRXeHNMQ0ozY205dVoxTmpjbWx3XG5kQ0k2Ym5Wc2JDd2ljblZzWlZSNWNHVWlPaUpEVDAxUVFWSkZJbjBzZXlKcFpDSTZPQ3dpWlhoaGJVbGtJam8yTURrME16Z3hNamN6XG5ORFV6T1RjNE1UY3NJbU52Ym5SbGJuUWlPaUl4TUZ4Y1kybHlZMnhsTVRraUxDSmhibk4zWlhJaU9pSThJaXdpZFhObGNrRnVjM2RsXG5jaUk2Ym5Wc2JDd2lZVzV6ZDJWeWN5STZXeUk4SWwwc0luTjBZWFIxY3lJNk1Dd2ljMk55YVhCMElqcHVkV3hzTENKM2NtOXVaMU5qXG5jbWx3ZENJNmJuVnNiQ3dpY25Wc1pWUjVjR1VpT2lKRFQwMVFRVkpGSW4wc2V5SnBaQ0k2T1N3aVpYaGhiVWxrSWpvMk1EazBNemd4XG5NamN6TkRVek9UYzRNVGNzSW1OdmJuUmxiblFpT2lJNFhGeGphWEpqYkdVeE5TSXNJbUZ1YzNkbGNpSTZJandpTENKMWMyVnlRVzV6XG5kMlZ5SWpwdWRXeHNMQ0poYm5OM1pYSnpJanBiSWp3aVhTd2ljM1JoZEhWeklqb3dMQ0p6WTNKcGNIUWlPbTUxYkd3c0luZHliMjVuXG5VMk55YVhCMElqcHVkV3hzTENKeWRXeGxWSGx3WlNJNklrTlBUVkJCVWtVaWZWMHNJblZ3WkdGMFpXUlVhVzFsSWpvd2ZYMFx1MDAzZFxuIn1d

解base64得到

[null,{"result":"eyJwa0lkU3RyIjoiNjA5NDM4MTI3MzQ1Mzk3ODE3Iiwib3RoZXJVc2VyIjp7InVzZXJJZCI6MTA1\nNjA0NDI3MiwidXNlck5hbWUiOiLnjL/lrp00NDI3MiIsImF2YXRhclVybCI6Imh0dHBzOi8vbGVv\nLW9ubGluZS5mYmNvbnRlbnQuY24vbGVvLWdhbGxlcnkvMTZhOWZkMDliMWQ4OTJhLnBuZyIsInVz\nZXJQZW5kYW50VXJsIjpudWxsfSwib3RoZXJXaW5Db3VudCI6MCwic2VsZldpbkNvdW50IjoxMywi\ndGFyZ2V0Q29zdFRpbWUiOjUwMDAwLCJleGFtVk8iOnsicGtJZFN0ciI6IjYwOTQzODEyNzM0NTM5\nNzgxNyIsInBvaW50SWQiOjIsInBvaW50TmFtZSI6IjIw5Lul5YaF5pWw55qE5q+U5aSn5bCPIiwi\ncnVsZVR5cGUiOjAsInF1ZXN0aW9uQ250IjoxMCwiY29ycmVjdENudCI6MCwiY29zdFRpbWUiOjAs\nInF1ZXN0aW9ucyI6W3siaWQiOjAsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50\nIjoiMTVcXGNpcmNsZTE5IiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMi\nOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVU\neXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjEsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250\nZW50IjoiMTBcXGNpcmNsZTciLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2Vy\ncyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVs\nZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6MiwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNv\nbnRlbnQiOiI4XFxjaXJjbGUxOCIsImFuc3dlciI6IjwiLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3\nZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJy\ndWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjozLCJleGFtSWQiOjYwOTQzODEyNzM0NTM5NzgxNywi\nY29udGVudCI6IjVcXGNpcmNsZTEzIiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFu\nc3dlcnMiOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGws\nInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjQsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3\nLCJjb250ZW50IjoiMTVcXGNpcmNsZTgiLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwi\nYW5zd2VycyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVs\nbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6NSwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4\nMTcsImNvbnRlbnQiOiIxMVxcY2lyY2xlNiIsImFuc3dlciI6Ij4iLCJ1c2VyQW5zd2VyIjpudWxs\nLCJhbnN3ZXJzIjpbIj4iXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0Ijpu\ndWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjo2LCJleGFtSWQiOjYwOTQzODEyNzM0NTM5\nNzgxNywiY29udGVudCI6IjE1XFxjaXJjbGU2IiwiYW5zd2VyIjoiPiIsInVzZXJBbnN3ZXIiOm51\nbGwsImFuc3dlcnMiOlsiPiJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQi\nOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjcsImV4YW1JZCI6NjA5NDM4MTI3MzQ1\nMzk3ODE3LCJjb250ZW50IjoiN1xcY2lyY2xlMTEiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dlciI6\nbnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1Njcmlw\ndCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OCwiZXhhbUlkIjo2MDk0MzgxMjcz\nNDUzOTc4MTcsImNvbnRlbnQiOiIxMFxcY2lyY2xlMTkiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dl\nciI6bnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1Nj\ncmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OSwiZXhhbUlkIjo2MDk0Mzgx\nMjczNDUzOTc4MTcsImNvbnRlbnQiOiI4XFxjaXJjbGUxNSIsImFuc3dlciI6IjwiLCJ1c2VyQW5z\nd2VyIjpudWxsLCJhbnN3ZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25n\nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifV0sInVwZGF0ZWRUaW1lIjowfX0\u003d\n"}]

删掉所有\n

eyJwa0lkU3RyIjoiNjA5NDM4MTI3MzQ1Mzk3ODE3Iiwib3RoZXJVc2VyIjp7InVzZXJJZCI6MTA1NjA0NDI3MiwidXNlck5hbWUiOiLnjL/lrp00NDI3MiIsImF2YXRhclVybCI6Imh0dHBzOi8vbGVvLW9ubGluZS5mYmNvbnRlbnQuY24vbGVvLWdhbGxlcnkvMTZhOWZkMDliMWQ4OTJhLnBuZyIsInVzZXJQZW5kYW50VXJsIjpudWxsfSwib3RoZXJXaW5Db3VudCI6MCwic2VsZldpbkNvdW50IjoxMywidGFyZ2V0Q29zdFRpbWUiOjUwMDAwLCJleGFtVk8iOnsicGtJZFN0ciI6IjYwOTQzODEyNzM0NTM5NzgxNyIsInBvaW50SWQiOjIsInBvaW50TmFtZSI6IjIw5Lul5YaF5pWw55qE5q+U5aSn5bCPIiwicnVsZVR5cGUiOjAsInF1ZXN0aW9uQ250IjoxMCwiY29ycmVjdENudCI6MCwiY29zdFRpbWUiOjAsInF1ZXN0aW9ucyI6W3siaWQiOjAsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTVcXGNpcmNsZTE5IiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjEsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTBcXGNpcmNsZTciLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6MiwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiI4XFxjaXJjbGUxOCIsImFuc3dlciI6IjwiLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjozLCJleGFtSWQiOjYwOTQzODEyNzM0NTM5NzgxNywiY29udGVudCI6IjVcXGNpcmNsZTEzIiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjQsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTVcXGNpcmNsZTgiLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6NSwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiIxMVxcY2lyY2xlNiIsImFuc3dlciI6Ij4iLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIj4iXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjo2LCJleGFtSWQiOjYwOTQzODEyNzM0NTM5NzgxNywiY29udGVudCI6IjE1XFxjaXJjbGU2IiwiYW5zd2VyIjoiPiIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPiJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjcsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiN1xcY2lyY2xlMTEiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OCwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiIxMFxcY2lyY2xlMTkiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OSwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiI4XFxjaXJjbGUxNSIsImFuc3dlciI6IjwiLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifV0sInVwZGF0ZWRUaW1lIjowfX0\u003d

解unicode

eyJwa0lkU3RyIjoiNjA5NDM4MTI3MzQ1Mzk3ODE3Iiwib3RoZXJVc2VyIjp7InVzZXJJZCI6MTA1NjA0NDI3MiwidXNlck5hbWUiOiLnjL/lrp00NDI3MiIsImF2YXRhclVybCI6Imh0dHBzOi8vbGVvLW9ubGluZS5mYmNvbnRlbnQuY24vbGVvLWdhbGxlcnkvMTZhOWZkMDliMWQ4OTJhLnBuZyIsInVzZXJQZW5kYW50VXJsIjpudWxsfSwib3RoZXJXaW5Db3VudCI6MCwic2VsZldpbkNvdW50IjoxMywidGFyZ2V0Q29zdFRpbWUiOjUwMDAwLCJleGFtVk8iOnsicGtJZFN0ciI6IjYwOTQzODEyNzM0NTM5NzgxNyIsInBvaW50SWQiOjIsInBvaW50TmFtZSI6IjIw5Lul5YaF5pWw55qE5q+U5aSn5bCPIiwicnVsZVR5cGUiOjAsInF1ZXN0aW9uQ250IjoxMCwiY29ycmVjdENudCI6MCwiY29zdFRpbWUiOjAsInF1ZXN0aW9ucyI6W3siaWQiOjAsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTVcXGNpcmNsZTE5IiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjEsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTBcXGNpcmNsZTciLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6MiwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiI4XFxjaXJjbGUxOCIsImFuc3dlciI6IjwiLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjozLCJleGFtSWQiOjYwOTQzODEyNzM0NTM5NzgxNywiY29udGVudCI6IjVcXGNpcmNsZTEzIiwiYW5zd2VyIjoiPCIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPCJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjQsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiMTVcXGNpcmNsZTgiLCJhbnN3ZXIiOiI+IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI+Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6NSwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiIxMVxcY2lyY2xlNiIsImFuc3dlciI6Ij4iLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIj4iXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifSx7ImlkIjo2LCJleGFtSWQiOjYwOTQzODEyNzM0NTM5NzgxNywiY29udGVudCI6IjE1XFxjaXJjbGU2IiwiYW5zd2VyIjoiPiIsInVzZXJBbnN3ZXIiOm51bGwsImFuc3dlcnMiOlsiPiJdLCJzdGF0dXMiOjAsInNjcmlwdCI6bnVsbCwid3JvbmdTY3JpcHQiOm51bGwsInJ1bGVUeXBlIjoiQ09NUEFSRSJ9LHsiaWQiOjcsImV4YW1JZCI6NjA5NDM4MTI3MzQ1Mzk3ODE3LCJjb250ZW50IjoiN1xcY2lyY2xlMTEiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OCwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiIxMFxcY2lyY2xlMTkiLCJhbnN3ZXIiOiI8IiwidXNlckFuc3dlciI6bnVsbCwiYW5zd2VycyI6WyI8Il0sInN0YXR1cyI6MCwic2NyaXB0IjpudWxsLCJ3cm9uZ1NjcmlwdCI6bnVsbCwicnVsZVR5cGUiOiJDT01QQVJFIn0seyJpZCI6OSwiZXhhbUlkIjo2MDk0MzgxMjczNDUzOTc4MTcsImNvbnRlbnQiOiI4XFxjaXJjbGUxNSIsImFuc3dlciI6IjwiLCJ1c2VyQW5zd2VyIjpudWxsLCJhbnN3ZXJzIjpbIjwiXSwic3RhdHVzIjowLCJzY3JpcHQiOm51bGwsIndyb25nU2NyaXB0IjpudWxsLCJydWxlVHlwZSI6IkNPTVBBUkUifV0sInVwZGF0ZWRUaW1lIjowfX0=

再解base64得到明文

{"pkIdStr":"609438127345397817","otherUser":{"userId":1056044272,"userName":"猿宝44272","avatarUrl":"https://leo-online.fbcontent.cn/leo-gallery/16a9fd09b1d892a.png","userPendantUrl":null},"otherWinCount":0,"selfWinCount":13,"targetCostTime":50000,"examVO":{"pkIdStr":"609438127345397817","pointId":2,"pointName":"20以内数的比大小","ruleType":0,"questionCnt":10,"correctCnt":0,"costTime":0,"questions":[{"id":0,"examId":609438127345397817,"content":"15\\circle19","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":1,"examId":609438127345397817,"content":"10\\circle7","answer":">","userAnswer":null,"answers":[">"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":2,"examId":609438127345397817,"content":"8\\circle18","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":3,"examId":609438127345397817,"content":"5\\circle13","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":4,"examId":609438127345397817,"content":"15\\circle8","answer":">","userAnswer":null,"answers":[">"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":5,"examId":609438127345397817,"content":"11\\circle6","answer":">","userAnswer":null,"answers":[">"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":6,"examId":609438127345397817,"content":"15\\circle6","answer":">","userAnswer":null,"answers":[">"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":7,"examId":609438127345397817,"content":"7\\circle11","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":8,"examId":609438127345397817,"content":"10\\circle19","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"},{"id":9,"examId":609438127345397817,"content":"8\\circle15","answer":"<","userAnswer":null,"answers":["<"],"status":0,"script":null,"wrongScript":null,"ruleType":"COMPARE"}],"updatedTime":0}}

image

这次我们多了一步,删除所有\n, 这下完美解决乱码

ZeroQing89 commented 3 hours ago

芜湖!!!!

ZeroQing89 commented 3 hours ago

大佬NB

XueYueooxx commented 3 hours ago

大佬牛逼

wztxy commented 3 hours ago

大佬牛逼

sd0ric4 commented 3 hours ago

好诶

GSQZ commented 3 hours ago

牛逼

dfaofeng commented 3 hours ago

大佬牛B!!!

kongbai141 commented 3 hours ago

密文是直接hook的传参吗

The-Lucky-0ne commented 3 hours ago

大佬NB

WH2315 commented 3 hours ago

NB

Adamzealmony commented 3 hours ago

留名

XueYueooxx commented 3 hours ago

这个密文是怎么来的?貌似不是响应体里的

Hillton53 commented 3 hours ago

这么快我操

qiushaonan commented 3 hours ago

厉害

xmexg commented 2 hours ago

这个密文是怎么来的?貌似不是响应体里的

带sign的url计算方法一样, 核心加密在libRequestEncoder.so
见#5 目前还不能解开具体加解密方法, 但是可以通过hook拿到加解密后的数据

XueYueooxx commented 2 hours ago

这个密文是怎么来的?貌似不是响应体里的

带sign的url计算方法一样, 核心加密在libRequestEncoder.so 见#5 目前还不能解开具体加解密方法, 但是可以通过hook拿到加解密后 好的谢谢

Hillton53 commented 2 hours ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

lshigurel commented 2 hours ago

牛逼

lacia233 commented 2 hours ago

牛蛙

dongguyang commented 2 hours ago

无敌了 这效率

chenzhengqingzzz commented 1 hour ago

大佬nb!!

xmexg commented 1 hour ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示

xiaou61 commented 1 hour ago

这就是中国速度吗

GSQZ commented 1 hour ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示

可行 牛逼啊

Hillton53 commented 1 hour ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示

是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退;

我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路

Arsenicss commented 1 hour ago

image 没啥难度

xmexg commented 1 hour ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示

是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退;

我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路

“Failed to spawn: failed to open USB device: Input/Output Error” :

拿到明文之后不知道怎么能重写内容作为响应

不明白响应是什么

whl555 commented 1 hour ago

大哥放过我们吧

chenzhengqingzzz commented 1 hour ago

大哥放过我们吧

笑死我了 你这不会是官方人员吧

masknull commented 1 hour ago

大哥放过我们吧

官方放一下算法吧

Harkerbest commented 1 hour ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

xmexg commented 1 hour ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

需要研究hook, 我稍后研究

Hillton53 commented 1 hour ago

请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚

使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示

是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退; 我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路

“Failed to spawn: failed to open USB device: Input/Output Error” :

拿到明文之后不知道怎么能重写内容作为响应

不明白响应是什么

  • 如果是修改试题和答案传回浏览器, 这是在安卓apk内置代码 传向 vue前端页面过成中拿到的, 应该能使用frida修改答案, 但还是要自己答题, 目前还没研究
  • 如果是自动提交正确答案, 目前还没有逆向前端vue页面提交答案的算法, 还是使用传统的模拟滑动输入答案答题, 开启webview调试见视频演示

收到,您提出的几个检查点在之前的排障中已经陆续确认过了,使用的是安卓模拟器,安卓和PC用的frida版本也确定是同一版本,不知道为什么会出现这种问题,被各种报错反复折磨一晚上头脑有些不太清醒,等到明天再慢慢看吧

期待方案成功落地

zipperWang commented 59 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

明文反着来一遍解密操作,再hook那个加密函数应该就行了

zipperWang commented 53 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

kongbai141 commented 51 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

mitmproxy和reqable都能实现

zipperWang commented 49 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

mitmproxy和reqable都能实现

reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西

kongbai141 commented 48 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

mitmproxy和reqable都能实现

reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西

都要自己实现吧

zipperWang commented 41 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

mitmproxy和reqable都能实现

reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西

都要自己实现吧

mitmproxy代理之后可以直接替换 from mitmproxy import http

def response(flow: http.HTTPFlow) -> None:

检查响应是否为文本类型

if flow.response.headers.get("content-type") == "text/html":
    # 修改响应体内容
    flow.response.text = flow.response.text.replace("原始文本", "替换后的文本")
zipperWang commented 40 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的

mitmproxy和reqable都能实现

reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西

都要自己实现吧

mitmproxy代理之后可以直接替换 from mitmproxy import http

def response(flow: http.HTTPFlow) -> None: # 检查响应是否为文本类型 if flow.response.headers.get("content-type") == "text/html": # 修改响应体内容 flow.response.text = flow.response.text.replace("原始文本", "替换后的文本")

这个是让ai贴的,不过他这个content-type貌似是url encode

xmexg commented 30 minutes ago

获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法

已实现

bigsk05 commented 29 minutes ago

MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究

b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc\'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9\'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'

kongbai141 commented 25 minutes ago

MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究

b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'

base64那个抓的是decrpyt后return的吧,和请求体肯定不一样,不走frida只能分析so了

zipperWang commented 23 minutes ago

MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究

b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'

base64那个抓的是decrpyt后return的吧,和请求体肯定不一样,不走frida只能分析so了

frida ,hook之后改答案,然后再hook加密函数,最后mitproxy改包,还缺个加密函数的hook

3172269740 commented 23 minutes ago

楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答

xmexg commented 20 minutes ago

中间人攻击 会非常艰难, 我研究sign算法写的anay_webview.js脚本, anay_webview.js脚本能对解密试题及答案起作用, 是因为解密也和计算sign一样vue页面传给apk内置方法再传给so层加解密, 与其研究中间人, 不如去解sign,

5 正在研究sign解密

xmexg commented 19 minutes ago

楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答

修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2

3172269740 commented 17 minutes ago

中间人攻击 会非常艰难, 我研究sign算法写的anay_webview.js脚本, anay_webview.js脚本能对解密试题及答案起作用, 是因为解密也和计算sign一样vue页面传给apk内置方法再传给so层加解密, 与其研究中间人, 不如去解sign,

5 正在研究sign解密

sign不也得逆向去找算法么 还是说前端界面也有类似的sign算法

3172269740 commented 5 minutes ago

楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答

修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2

,

这个只是拿到了试题 修改试题答案还是得找到加密算法然后用算法加密修改后的试题再重定义响应体回去达到修改试题的目的

zipperWang commented 3 minutes ago

楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答

修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2

,

这个只是拿到了试题 修改试题答案还是得找到加密算法然后用算法加密修改后的试题再重定义响应体回去达到修改试题的目的

是的