앗쌰뵹 ㅋㅋㅋ
이렇게 Javascript Injection 으로 점수 조작이 가능하다 ㅋㄷ;
# 인젝션 함수 실행 부분 Example
NSString *prefixUrl1 = @"https://appgame.okcashbag.com/game/2048/"; if([request.URL.absoluteString hasPrefix:prefixUrl1]) { [self performSelector:@selector(doInjection) withObject:nil afterDelay:5.0]; }
# Javascript 인젝션 함수 Example
- (void)doInjection { NSString *buildString = @"game2048_04210214"; NSString *scoreString = @"513842"; NSString *keyString = @"26gameState"; // 초기 값 확인 함 [self viewJson:keyString]; // 스코어 인젝션 NSString *game2048String = [[NSUserDefaults standardUserDefaults] objectForKey:buildString]; if ([game2048String isEqualToString:@"Y"] == NO) { [[NSUserDefaults standardUserDefaults] setObject:@"Y" forKey:buildString]; [self injectScore:scoreString key:keyString]; // 잘 됐는지 확인 함 [self viewJson:keyString]; } } - (void)viewJson:(NSString *)keyString { //NSString *result1 = [NSString stringWithFormat:@"localStorage.getItem('12gameState');"]; NSString *result1 = [NSString stringWithFormat:@"localStorage.getItem('%@');", keyString]; NSString *value1 = [_webView stringByEvaluatingJavaScriptFromString:result1]; NSLog(@"------> value1 : %@", value1); } - (void)injectScore:(NSString *)scoreString key:(NSString *)keyString { //NSString *keyString = @"12gameState"; //NSString *scoreString = @"460182"; //NSString *buildString = @"game2048_1127"; NSString *result0 = [NSString stringWithFormat:@"localStorage.setItem(\"%@\", JSON.stringify({\"grid\":{\"size\":4,\"cells\":[[{\"position\":{\"x\":0,\"y\":0},\"value\":2}, {\"position\":{\"x\":0,\"y\":1},\"value\":1024},{\"position\":{\"x\":0,\"y\":2},\"value\":8192}, {\"position\":{\"x\":0,\"y\":3},\"value\":64}],[{\"position\":{\"x\":1,\"y\":0},\"value\":512}, {\"position\":{\"x\":1,\"y\":1},\"value\":256},{\"position\":{\"x\":1,\"y\":2},\"value\":256}, {\"position\":{\"x\":1,\"y\":3},\"value\":128}],[{\"position\":{\"x\":2,\"y\":0},\"value\":1024}, {\"position\":{\"x\":2,\"y\":1},\"value\":4},{\"position\":{\"x\":2,\"y\":2},\"value\":2}, {\"position\":{\"x\":2,\"y\":3},\"value\":2048}],[{\"position\":{\"x\":3,\"y\":0},\"value\":1024}, null,null,null]]},\"score\":%@,\"over\":false,\"won\":false,\"keepPlaying\":false,\"started\":true}));", keyString, scoreString]; NSString *value0 = [_webView stringByEvaluatingJavaScriptFromString:result0]; NSLog(@"------> value0 : %@", value0); }
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
1113 | System/OS | How to Setup an Email Server on CentOS 7 | hooni | 2018.04.05 | 3041 |
1112 | Develop | How to Test SMTP AUTH using Telnet | hooni | 2018.04.05 | 1596 |
1111 | Develop | [python] DJI Tello 드론 코딩 (프로그래밍) 58 | hooni | 2018.03.04 | 28807 |
1110 | System/OS | [mac] 맥에서 기본 실행 앱 변경하기 | hooni | 2018.03.02 | 1976 |
1109 | System/OS | 콘솔에서 패스워드 걸린 zip 압축하는 명령 | hooni | 2018.03.02 | 1142 |
1108 | Develop | What is difference between Get, Post, Put and Delete? | hooni | 2018.02.28 | 1577 |
1107 | Develop | [php] Laravel Route에서 PC/Mobile 분기 | hooni | 2018.01.24 | 2688 |
1106 | Develop | Laravel 5 Failed opening required bootstrap/../vendor/autoload.php | hooni | 2018.01.24 | 1843 |
1105 | Develop | [php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window) 2 | hooni | 2017.12.15 | 2789 |
1104 | Develop | [php][laravel] 라라벨 프로젝트 생성 및 구조 | hooni | 2017.12.15 | 2561 |
1103 | Develop | [php][laravel] 초간단 MacOS에서 Laravel 개발 환경 구축 | hooni | 2017.12.15 | 2130 |
1102 | Database | [mysql] MacOS에 MySQL 설치, 설정, 암호 재설정 | hooni | 2017.12.15 | 1631 |