Changes

Jump to navigation Jump to search
no edit summary
Line 2: Line 2:  
== 7.26([[Item:Q1185|Le Temps]], Watson Actu) ==
 
== 7.26([[Item:Q1185|Le Temps]], Watson Actu) ==
 
=== Progress: ===
 
=== Progress: ===
# Have tried to dynamically modify and test all SDK listed on 7.23, but they are not called(Almost all ads are from Appenux, which has been done in last week). Though I can do static analysis, it is not guaranteed for working in the future and can not be visualized.
+
# Have tried to dynamically modify and test all SDK listed on 7.23, but they are not called(Almost all ads are from AppNexus, which has been done in last week). Though I can do static analysis, it is not guaranteed for working in the future and can not be visualized.
 
# Understand the advertisement mechanism in Le Temps.
 
# Understand the advertisement mechanism in Le Temps.
# After reviewing the apps listed by Maria-Pierre, I selected Watson Actu, since it contains much more diverse types of advertisements(including banner, Video Ads, etc [https://www.storyly.io/post/types-of-mobile-ads-and-their-importance see here]), and such ads are frequently showing in this app.
+
# After reviewing the apps listed by MP, I selected Watson Actu, since it contains much more diverse types of advertisements(including banner, Video Ads, etc [https://www.storyly.io/post/types-of-mobile-ads-and-their-importance see here]), and such ads are frequently showing in this app.
 
# Decompile '''Watson Actu''' and find bidding functions from Google Ads, though they are heavily obfuscated:
 
# Decompile '''Watson Actu''' and find bidding functions from Google Ads, though they are heavily obfuscated:
 
* smali_classes2/com/google/android/gms/internal/ads/zzezz.smali:    const-string v10, "bid_response"
 
* smali_classes2/com/google/android/gms/internal/ads/zzezz.smali:    const-string v10, "bid_response"
Line 13: Line 13:     
=== Questions: ===
 
=== Questions: ===
# Is the static design analysis report desirable? I am afraid that such reports can offer little help in pratice usage. My preference is to dynamically analyze and store data. But the biggest obstaticle for me is to find the functions or related advertisement companies that will be ''' frequently called or activated''' during app running, which will help me dynamically analyze them. '''I need to get such suitable apps'''.
+
# Is the static design analysis report desirable? I am afraid that such reports can offer little help in practice usage. My preference is to dynamically analyze and store data. But the biggest obstacle for me is to find the functions or related advertisement companies that will be ''' frequently called or activated''' during app running, which will help me dynamically analyze them. '''I need to get such suitable apps'''.
 
# I need more concrete requirements, which can be from the experience of trying mobile apps. For example, you try to use some apps, and then you can find some data showing on UI that interests you. By receiving you interests, I can do more, which is not limited to advertisement bidding.
 
# I need more concrete requirements, which can be from the experience of trying mobile apps. For example, you try to use some apps, and then you can find some data showing on UI that interests you. By receiving you interests, I can do more, which is not limited to advertisement bidding.
 
=== Plan: ===
 
=== Plan: ===
Line 20: Line 20:  
== 7.25([[Item:Q1185|Le Temps]]) ==
 
== 7.25([[Item:Q1185|Le Temps]]) ==
 
=== Progress: ===
 
=== Progress: ===
# √ Make corresponding methods that can parse and save JSON and other information. This point is very important for me to improve efficiency. Previously, I have to write all '''smali''' inside a target function, which would not only cause register overlapping and control flow error, but also introduce complexity since one line Java code can be compiled into multiple lines smali code. After reaching this point, in the future, I only need to write java code, which is more efficient, and then transform an integration into target smali code. It can speed up a lot!
+
# √ Make corresponding methods that can parse and save JSON and other information. This point is very important for me to improve efficiency. Previously, I have to write all '''smali''' inside a target function, which would not only cause register overlapping and control flow error, but also introduce complexity since one line Java code can be compiled into multiple lines small code. After reaching this point, in the future, I only need to write java code, which is more efficient, and then transform an integration into target smali code. It can speed up a lot!
# × Try to dynamically test SDKs in terms of advertisement.(I was stucked by point 4)
+
# × Try to dynamically test SDKs in terms of advertisement.(I was stuck by point 4)
# × Try to find and collect message flow in Le Temps in terms of advertisement network. (I was stucked by point 4)
+
# × Try to find and collect message flow in Le Temps in terms of advertisement network. (I was stuck by point 4)
 
# √ Let Storing Data Locally work in different environments. Currently Storing Data Locally can work well in my Android Emulator, but it is more tricky to adapt to other environments like the Samsung Phone Paul gave me. The reasons are:
 
# √ Let Storing Data Locally work in different environments. Currently Storing Data Locally can work well in my Android Emulator, but it is more tricky to adapt to other environments like the Samsung Phone Paul gave me. The reasons are:
 
* If there is no SdCard, we have to store data into internal memory. However, if the mobile app is not '''rooted''', it is hard to access to data in internal memory(Users can not access to this data, and only the app itself can).
 
* If there is no SdCard, we have to store data into internal memory. However, if the mobile app is not '''rooted''', it is hard to access to data in internal memory(Users can not access to this data, and only the app itself can).
* Now, I can get the correct absolute address to store data in internal storage and external storage, which can be adapted to any mobile phones.(But it is not convinient for me to debug on Samsung Phone, since I can not view text easily). So I will use Android Emulator in next steps for efficiency.
+
* Now, I can get the correct absolute address to store data in internal storage and external storage, which can be adapted to any mobile phones.(But it is not convenient for me to debug on Samsung Phone, since I can not view text easily). So I will use Android Emulator in next steps for efficiency.
    
=== Questions: ===
 
=== Questions: ===
# Can I root the phone? Unfortunately, root is not reversable. But it is very common in dev teams.
+
# Can I root the phone? Unfortunately, root is not reversible. But it is very common in dev teams.
# The problem about '''Saving Data Locally''' is unavoidable in teh future. I have a basic idea about how to design it. We can create a floating window for the users(users can hide it of course). In this window, users can view what type of advertisement they are exposed to; users can choose and send data to our server for further processing. But I am not very sure about this, because it seems like a heavy modification for an APP. The Game Testing Team in ByteDance would choose to use another APP to dynamically inject into targeting APP.
+
# The problem about '''Saving Data Locally''' is unavoidable in the future. I have a basic idea about how to design it. We can create a floating window for the users(users can hide it of course). In this window, users can view what type of advertisement they are exposed to; users can choose and send data to our server for further processing. But I am not very sure about this, because it seems like a heavy modification for an APP. The Game Testing Team in ByteDance would choose to use another APP to dynamically inject into targeting APP.
    
=== Plans: ===
 
=== Plans: ===
14,020

edits

Navigation menu