Suche senden
Hochladen
DevQuiz 2011 の模範解答 Android編
•
Als KEY, PDF herunterladen
•
3 gefällt mir
•
1,268 views
Makoto Yamazaki
Folgen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 17
Jetzt herunterladen
Empfohlen
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
Gradle by Example
Gradle by Example
Eric Wendelin
Your first patch to open stack
Your first patch to open stack
Akanksha Agrawal
Gradle enabled android project
Gradle enabled android project
Shaka Huang
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
Weaveworks
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKs
relayr
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
Neil Gehani
Empfohlen
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
Gradle by Example
Gradle by Example
Eric Wendelin
Your first patch to open stack
Your first patch to open stack
Akanksha Agrawal
Gradle enabled android project
Gradle enabled android project
Shaka Huang
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
Weaveworks
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKs
relayr
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
Neil Gehani
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
Neil Gehani
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
OlinData
Introduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
Brent Laster
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Julien Dubois
Dependency management in golang
Dependency management in golang
Ramit Surana
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
OlinData
2017 jenkins world
2017 jenkins world
Brent Laster
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
Julien Dubois
PROMAND 2014 project structure
PROMAND 2014 project structure
Alexey Buzdin
Git tutorial
Git tutorial
Elli Kanal
Git and git workflow best practice
Git and git workflow best practice
Majid Hosseini
Git & GitHub for Beginners
Git & GitHub for Beginners
Sébastien Saunier
Introduction to Tekton
Introduction to Tekton
Victor Iglesias
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Ivan Nemytchenko
Github basics
Github basics
Radoslav Georgiev
Git and github fundamentals
Git and github fundamentals
RajKharvar
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Kaisei Hamamoto
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Nikhil Thomas
Core Android
Core Android
Dominik Helleberg
React inter3
React inter3
Oswald Campesato
Weitere ähnliche Inhalte
Was ist angesagt?
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
Neil Gehani
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
OlinData
Introduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
Brent Laster
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Julien Dubois
Dependency management in golang
Dependency management in golang
Ramit Surana
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
OlinData
2017 jenkins world
2017 jenkins world
Brent Laster
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
Julien Dubois
PROMAND 2014 project structure
PROMAND 2014 project structure
Alexey Buzdin
Git tutorial
Git tutorial
Elli Kanal
Git and git workflow best practice
Git and git workflow best practice
Majid Hosseini
Git & GitHub for Beginners
Git & GitHub for Beginners
Sébastien Saunier
Introduction to Tekton
Introduction to Tekton
Victor Iglesias
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Ivan Nemytchenko
Github basics
Github basics
Radoslav Georgiev
Git and github fundamentals
Git and github fundamentals
RajKharvar
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Kaisei Hamamoto
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Nikhil Thomas
Was ist angesagt?
(20)
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
Introduction to GitHub Actions
Introduction to GitHub Actions
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Dependency management in golang
Dependency management in golang
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
2017 jenkins world
2017 jenkins world
Starting with Git & GitHub
Starting with Git & GitHub
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
PROMAND 2014 project structure
PROMAND 2014 project structure
Git tutorial
Git tutorial
Git and git workflow best practice
Git and git workflow best practice
Git & GitHub for Beginners
Git & GitHub for Beginners
Introduction to Tekton
Introduction to Tekton
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Github basics
Github basics
Git and github fundamentals
Git and github fundamentals
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Ähnlich wie DevQuiz 2011 の模範解答 Android編
Core Android
Core Android
Dominik Helleberg
React inter3
React inter3
Oswald Campesato
Mobile Developers Talks: Delve Mobile
Mobile Developers Talks: Delve Mobile
Konstantin Loginov
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
Guillaume Laforge
Automated malware analysis
Automated malware analysis
Ibrahim Baliç
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Andreas Grabner
How to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
David M. Johnson
Using Geoscript Groovy
Using Geoscript Groovy
Jared Erickson
DIとトレイとによるAndroid開発の効率化
DIとトレイとによるAndroid開発の効率化
Tomoharu ASAMI
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
jClarity
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Xavier Hallade
React nativebeginner1
React nativebeginner1
Oswald Campesato
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
BGA Cyber Security
Aug penguin16
Aug penguin16
alhino
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
Android OS & SDK - Getting Started
Android OS & SDK - Getting Started
Hemant Chhapoliya
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
NAVER D2
Selendroid in Action
Selendroid in Action
Dominik Dary
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Amazon Web Services Japan
Ähnlich wie DevQuiz 2011 の模範解答 Android編
(20)
Core Android
Core Android
React inter3
React inter3
Mobile Developers Talks: Delve Mobile
Mobile Developers Talks: Delve Mobile
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
Automated malware analysis
Automated malware analysis
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
How to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
Using Geoscript Groovy
Using Geoscript Groovy
DIとトレイとによるAndroid開発の効率化
DIとトレイとによるAndroid開発の効率化
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
React nativebeginner1
React nativebeginner1
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
Aug penguin16
Aug penguin16
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Android OS & SDK - Getting Started
Android OS & SDK - Getting Started
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
Selendroid in Action
Selendroid in Action
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Mehr von Makoto Yamazaki
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
Custom lintcheckをつくろう
Custom lintcheckをつくろう
Makoto Yamazaki
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎
Makoto Yamazaki
ICS ホットトピック
ICS ホットトピック
Makoto Yamazaki
USB Host APIで遊んでみた
USB Host APIで遊んでみた
Makoto Yamazaki
20110619 live view ideathon_logcatonliveview
20110619 live view ideathon_logcatonliveview
Makoto Yamazaki
I/O 2011 報告会 ADKで遊んでみた
I/O 2011 報告会 ADKで遊んでみた
Makoto Yamazaki
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
Makoto Yamazaki
ぐだ生 Java入門第一回(equals hash code_tostring)
ぐだ生 Java入門第一回(equals hash code_tostring)
Makoto Yamazaki
20110326 ネットプリントの紹介
20110326 ネットプリントの紹介
Makoto Yamazaki
20110109 abc2010w gingerbread_api_storage
20110109 abc2010w gingerbread_api_storage
Makoto Yamazaki
Mehr von Makoto Yamazaki
(13)
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Custom lintcheckをつくろう
Custom lintcheckをつくろう
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎
ICS ホットトピック
ICS ホットトピック
USB Host APIで遊んでみた
USB Host APIで遊んでみた
20110619 live view ideathon_logcatonliveview
20110619 live view ideathon_logcatonliveview
I/O 2011 報告会 ADKで遊んでみた
I/O 2011 報告会 ADKで遊んでみた
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第一回(equals hash code_tostring)
ぐだ生 Java入門第一回(equals hash code_tostring)
20110326 ネットプリントの紹介
20110326 ネットプリントの紹介
20110109 abc2010w gingerbread_api_storage
20110109 abc2010w gingerbread_api_storage
Kürzlich hochgeladen
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
johnbeverley2021
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
WSO2
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Rustici Software
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
The Digital Insurer
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Zilliz
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
apidays
Kürzlich hochgeladen
(20)
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
DevQuiz 2011 の模範解答 Android編
1.
DevQuiz
Android 2011/10/01 Open at Xi for Developer
2.
•
YAMAZAKI Makoto(twitter: @zaki50) 4988/5000 • Android • • StickyShortcut • ClaudiaVoice for Android • Java ( ) • GDD 2011 Japan ADK OpenCall
3.
DevQuiz • Google Developer
Day 2011 Japan
4.
Android •
AIDL Android AIDL package com.google.android.apps.gddquiz; interface IQuizService { String getCode(); }
5.
1 1. 2. 3.
AIDL
6.
1 1. 2. 3.
AIDL
7.
• • •
8.
•
apk • smali (dalvik assembler) • Java
9.
Step 1 apk •
apk zip smali apktool http://goo.gl/5U8U $ apktool d DevQuiz11Service_r1.apk I: Baksmaling... I: Loading resource table... I: Loaded. I: Loading resource table from file: /Users/zaki/apktool/framework/1.apk I: Loaded. I: Decoding file-resources... I: Decoding values*/* XMLs... I: Done. I: Copying assets and libs... $ ls DevQuiz11Service_r1 AndroidManifest.xml apktool.yml res smali
10.
smali • Dalvik .class
public Lcom/google/android/apps/gddquiz/gddquiz11service/DevQuiz11Service; .super Landroid/app/Service; .method static synthetic a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 1 invoke-static {p0, p1}, Lcom/google/android/apps/gddquiz/gddquiz11service/ DevQuiz11Service;->b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method • http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
11.
Step 2 • ProGuard •
Service $ cd DevQuiz11Service_r1/smali $ grep -rl ".super Landroid/app/Service" . ./com/google/android/apps/gddquiz/gddquiz11service/DevQuiz11Service.smali $ cat DevQuiz11Service.smali ( ) .method private static b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 6 ( ) const-string v2, "SHA-1" invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; ( )
12.
Step 2 • DevQuiz11Service#b
private DevQuiz11Service#a • DevQuiz11Service#a $ grep -rl DevQuiz11Service . ./gddquiz11service/a.smali ./gddquiz11service/DevQuiz11Service.smali ./gddquiz11service/DevQuiz11ServiceActivity.smali
13.
Step 3 Java •
.method private static b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 6 private static String getCode(String googleAccount, String passcode) { // googleAccount: p0, passcode: p1 // v0 v5 • static invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v0 String v0 = googleAccount.trim(); • const-string v2, "SHA-1" invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/ MessageDigest; move-result-object v2 MessageDigest v2 = MessageDigest.getInstance(“SHA-1”);
14.
Step 3 Java •
new-instance v3, Ljava/lang/StringBuilder; move-result-object v0 invoke-direct {v3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V StringBuilder v3 = new StringBuilder(v0); • if-lt v2, v3, :cond_0 if (v2 < v3) goto cond_0; // goto if-ne v3, v4, :cond_1 if (v3 != v4) goto cond_1; // goto • xor xor-int/2addr v3, v4 v3 ^= v4;
15.
Step 3 Java •
→ http://goo.gl/78W6s CodeGenerator.java
16.
Step 4
17.
• apktook
http://goo.gl/5U8U • Dalvik opcodes http://goo.gl/yUX3S • JUMPERZ.NET Blog: Android http://goo.gl/aVL3q • CodeGenerator.java http://goo.gl/78W6s
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen