{"title":"Blacklight Inspection","page_title":"Randy Westergren - Development, security research, and other adventures in code","uri_ins":"http://randywestergren.com/","uri_dest":"https://randywestergren.com/","uri_redirects":["http://randywestergren.com/"],"secure_connection":{},"host":"randywestergren.com","config":{"emulateDevice":{"name":"iPhone 14 Pro Max","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1","viewport":{"width":430,"height":739,"deviceScaleFactor":3,"isMobile":true,"hasTouch":true,"isLandscape":false}},"cleareCache":true,"captureHar":true,"captureLinks":false,"enableAdBlock":false,"saveBrowserProfile":false,"numPages":2,"defaultTimeout":35000,"defaultWaitUntil":"networkidle2","headless":true,"headers":{},"extraChromiumArgs":["--disable-features=TrackingProtection3pcd","--website-analysis-scan=c40de316-d9e7-45dd-9ddc-084a8ecae0ba"],"extraPuppeteerOptions":{}},"browser":{"name":"Chromium","version":"Chrome/127.0.6533.88","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36","platform":{"name":"Linux","version":"6.12.107+deb13-amd64"}},"script":{"host":"c2635983b1d4","version":{"npm":"3.11.0","commit":"dev"},"node_version":"v24.21.0"},"start_time":"2026-09-10T20:58:39.342Z","end_time":"2026-09-10T20:58:56.552Z","browsing_history":["https://randywestergren.com/","https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/"],"hosts":{"requests":{"first_party":["randywestergren.com"],"third_party":["ws.sharethis.com","www.googletagmanager.com","cdn.jsdelivr.net","secure.gravatar.com","data.stbuttons.click","randywestergren.disqus.com","l.sharethis.com","region1.google-analytics.com","www.google-analytics.com","s.w.org","disqus.com","c.disquscdn.com","referrer.disqus.com"]}},"reports":{"behaviour_event_listeners":{"KEYBOARD":{"https://c.disquscdn.com/next/recommendations/common.bundle.43d7b81d7be743ddbbff9eeae86f2a4b.js":["keypress"],"https://c.disquscdn.com/next/embed/common.bundle.712217b7f5a618b8bc684129c2acd47a.js":["keypress"]},"MOUSE":{"https://c.disquscdn.com/next/recommendations/common.bundle.43d7b81d7be743ddbbff9eeae86f2a4b.js":["click"],"https://c.disquscdn.com/next/recommendations/recommendations.bundle.e10dd10b7f8cbf10e87b9f893f636092.js":["click","scroll","mousemove"],"https://c.disquscdn.com/embedv2/latest/embedv2.js":["scroll"],"https://c.disquscdn.com/next/embed/common.bundle.712217b7f5a618b8bc684129c2acd47a.js":["click"],"https://c.disquscdn.com/next/embed/lounge.bundle.fb0464762daa97f7396e079e047564bc.js":["click","scroll","mousemove"],"https://randywestergren.disqus.com/recommendations.js":["click","scroll","mousemove"],"https://www.googletagmanager.com/gtag/js?id=G-B7HQVT0N7B":["click"],"https://randywestergren.disqus.com/embed.js":["click","scroll","mousemove"],"https://ws.sharethis.com/button/st_insights.js?publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&product=feather&ver=1766267309":["click"]}},"canvas_fingerprinters":{"data_url":{},"fingerprinters":[],"styles":{},"texts":{}},"canvas_font_fingerprinters":{"canvas_font":{},"text_measure":{}},"cookies":[{"name":"_ga_B7HQVT0N7B","value":"GS2.1.s1789073932$o1$g0$t1789073932$j60$l0$h0","domain":"randywestergren.com","path":"/","expires":"2027-10-15T20:58:52.306Z","size":59,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_ga","value":"GA1.2.1546453631.1789073932","domain":"randywestergren.com","path":"/","expires":"2027-10-15T20:58:52.473Z","size":30,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_gid","value":"GA1.2.1378526787.1789073932","domain":"randywestergren.com","path":"/","expires":"2026-09-11T20:58:52.000Z","size":31,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_gat_gtag_UA_17761407_1","value":"1","domain":"randywestergren.com","path":"/","expires":"2026-09-10T20:59:52.000Z","size":24,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"__jid","value":"8e249iv38c4ck5","domain":"disqus.com","path":"/","expires":"2026-09-10T21:28:53.000Z","size":19,"httpOnly":false,"secure":true,"session":false,"sameSite":"None","priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"unknown","third_party":true},{"name":"disqus_unique","value":"8e249kr3p3c7v8","domain":"disqus.com","path":"/","expires":"2027-09-10T20:58:53.000Z","size":27,"httpOnly":false,"secure":true,"session":false,"sameSite":"None","priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"unknown","third_party":true}],"fb_pixel_events":[],"tiktok_pixel_events":[],"twitter_pixel_events":[],"google_analytics_events":[],"key_logging":{},"session_recorders":{},"third_party_trackers":[{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"abe":0,"dnt":0,"embed_hidden":0,"event":"init_embed","experiment":"videofloorexp_hidden","forum":"randywestergren","forum_id":3241029,"imp":"8e249f434ki87k","load_time":318,"max_enabled":false,"promoted_enabled":false,"referrer":"https://randywestergren.com/","service":"dynamic","theme":"next","thread":10430169530,"thread_slug":"building_pyodbc_for_aws_lambdas_python_313_runtime","tracking_enabled":0,"user_type":"anon","variant":"fallthrough"}},"stack":[{"fileName":"https://disqus.com/embed/comments/?base=default&f=randywestergren&t_i=3054%20https%3A%2F%2Frandywestergren.com%2F%3Fp%3D3054&t_u=https%3A%2F%2Frandywestergren.com%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&t_e=Building%20pyodbc%20for%20AWS%20Lambda%E2%80%99s%20Python%203.13%20Runtime&t_d=Building%20pyodbc%20for%20AWS%20Lambda%27s%20Python%203.13%20Runtime%20-%20Randy%20Westergren&t_t=Building%20pyodbc%20for%20AWS%20Lambda%E2%80%99s%20Python%203.13%20Runtime&s_o=default#version=aec03551fc5e527e48dfb6188a272cb0","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/event.gif?abe=0&embed_hidden=0&load_time=318&event=init_embed&thread=10430169530&forum=randywestergren&forum_id=3241029&imp=8e249f434ki87k&thread_slug=building_pyodbc_for_aws_lambdas_python_313_runtime&user_type=anon&theme=next&dnt=0&tracking_enabled=0&experiment=videofloorexp_hidden&variant=fallthrough&service=dynamic&promoted_enabled=false&max_enabled=false&referrer=https%3A%2F%2Frandywestergren.com%2F"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"cmp.gpp.absent"}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=cmp.gpp.absent"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"In my previous post, I walked through building pyodbc for Python 3.9 Lambda functions. With the release of Python 3.13 support in Lambda, it’s time for an update. Here’s the Dockerfile that builds a Lambda container image with pyodbc and SQL Server support: The key differences from the Python 3.9 version include: Example Usage Create …","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","img_pview":true,"lang":"en","location":"/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073932114.1821,"sop":false,"title":"Building pyodbc for AWS Lambda's Python 3.13 Runtime - Randy Westergren","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","uuid":"327689b6-b984-4d2e-b25d-05be569b60df","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073932114.18225&hostname=randywestergren.com&location=%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&title=Building%20pyodbc%20for%20AWS%20Lambda%27s%20Python%203.13%20Runtime%20-%20Randy%20Westergren&sop=false&description=In%20my%20previous%20post%2C%20I%20walked%20through%20building%20pyodbc%20for%20Python%203.9%20Lambda%20functions.%20With%20the%20release%20of%20Python%203.13%20support%20in%20Lambda%2C%20it%E2%80%99s%20time%20for%20an%20update.%20Here%E2%80%99s%20the%20Dockerfile%20that%20builds%20a%20Lambda%20container%20image%20with%20pyodbc%20and%20SQL%20Server%20support%3A%20The%20key%20differences%20from%20the%20Python%203.9%20version%20include%3A%20Example%20Usage%20Create%20%E2%80%A6&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=327689b6-b984-4d2e-b25d-05be569b60df&description=In%20my%20previous%20post%2C%20I%20walked%20through%20building%20pyodbc%20for%20Python%203.9%20Lambda%20functions.%20With%20the%20release%20of%20Python%203.13%20support%20in%20Lambda%2C%20it%E2%80%99s%20time%20for%20an%20update.%20Here%E2%80%99s%20the%20Dockerfile%20that%20builds%20a%20Lambda%20container%20image%20with%20pyodbc%20and%20SQL%20Server%20support%3A%20The%20key%20differences%20from%20the%20Python%203.9%20version%20include%3A%20Example%20Usage%20Create%20%E2%80%A6&img_pview=true"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"In my previous post, I walked through building pyodbc for Python 3.9 Lambda functions. With the release of Python 3.13 support in Lambda, it’s time for an update. Here’s the Dockerfile that builds a Lambda container image with pyodbc and SQL Server support: The key differences from the Python 3.9 version include: Example Usage Create …","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","lang":"en","location":"/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073932114.1821,"sop":false,"title":"Building pyodbc for AWS Lambda's Python 3.13 Runtime - Randy Westergren","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","uuid":"327689b6-b984-4d2e-b25d-05be569b60df","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073932114.18225&hostname=randywestergren.com&location=%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&title=Building%20pyodbc%20for%20AWS%20Lambda%27s%20Python%203.13%20Runtime%20-%20Randy%20Westergren&sop=false&description=In%20my%20previous%20post%2C%20I%20walked%20through%20building%20pyodbc%20for%20Python%203.9%20Lambda%20functions.%20With%20the%20release%20of%20Python%203.13%20support%20in%20Lambda%2C%20it%E2%80%99s%20time%20for%20an%20update.%20Here%E2%80%99s%20the%20Dockerfile%20that%20builds%20a%20Lambda%20container%20image%20with%20pyodbc%20and%20SQL%20Server%20support%3A%20The%20key%20differences%20from%20the%20Python%203.9%20version%20include%3A%20Example%20Usage%20Create%20%E2%80%A6&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=327689b6-b984-4d2e-b25d-05be569b60df"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1789073932118,"_s":1,"_ss":1,"are":1,"cid":1546453631.1789074,"dl":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","dma":1,"dma_cps":"a","dt":"Building pyodbc for AWS Lambda's Python 3.13 Runtime - Randy Westergren","en":"page_view","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6990v894888167za200zd894888167","ngs":1,"npa":1,"pscdl":"","rcb":15,"sct":1,"seg":0,"sid":1789073932,"sr":"430x739","tag_exp":"115938465~115938469~118897920~118897930~120213116~120385423~120469145~120469153","tfd":643,"tid":"G-B7HQVT0N7B","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-B7HQVT0N7B&gtm=45je6990v894888167za200zd894888167&_p=1789073932118&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=1546453631.1789073932&frm=0&ngs=1&pscdl=&rcb=15&sr=430x739&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938465~115938469~118897920~118897930~120213116~120385423~120469145~120469153&sid=1789073932&sct=1&seg=0&dl=https%3A%2F%2Frandywestergren.com%2Fbuilding-pyodbc-for-aws-lambdas-python-3-13-runtime%2F&dt=Building%20pyodbc%20for%20AWS%20Lambda%27s%20Python%203.13%20Runtime%20-%20Randy%20Westergren&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=643"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":null,"id":"UA-17761407-1"}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-17761407-1&cx=c&gtm=4e6990"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-B7HQVT0N7B"}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-B7HQVT0N7B"},{"data":{"body":{},"filter":"||ws.sharethis.com^$script","listName":"easyprivacy.txt","query":{"product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","ver":1766267309}},"stack":[{"fileName":"https://randywestergren.com/building-pyodbc-for-aws-lambdas-python-3-13-runtime/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://ws.sharethis.com/button/st_insights.js?publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&product=feather&ver=1766267309"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_et":6035,"_p":1789073925579,"_s":2,"are":1,"cid":92899796.1789074,"dl":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","dma":1,"dma_cps":"a","dt":"Vibe Hacking: Proxying Flutter Traffic on Android with Claude - Randy Westergren","en":"user_engagement","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6990v894888167za200zd894888167","ngs":1,"npa":1,"pscdl":"","rcb":6,"sct":1,"seg":0,"sid":1789073925,"sr":"430x739","tag_exp":"115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153","tfd":7182,"tid":"G-B7HQVT0N7B","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-B7HQVT0N7B&gtm=45je6990v894888167za200zd894888167&_p=1789073925579&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=92899796.1789073926&frm=0&ngs=1&pscdl=&rcb=6&sr=430x739&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=2&tag_exp=115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153&sid=1789073925&sct=1&seg=0&dl=https%3A%2F%2Frandywestergren.com%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&dt=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude%20-%20Randy%20Westergren&en=user_engagement&_et=6035&tfd=7182"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"abe":0,"dnt":0,"embed_hidden":0,"event":"init_embed","experiment":"videofloorexp_hidden","forum":"randywestergren","forum_id":3241029,"imp":"8e245gpvmu0ou","load_time":639,"max_enabled":false,"promoted_enabled":false,"referrer":"https://randywestergren.com/","service":"dynamic","theme":"next","thread":10864566990,"thread_slug":"vibe_hacking_proxying_flutter_traffic_on_android_with_claude","tracking_enabled":0,"user_type":"anon","variant":"fallthrough"}},"stack":[{"fileName":"https://disqus.com/embed/comments/?base=default&f=randywestergren&t_i=3059%20https%3A%2F%2Frandywestergren.com%2F%3Fp%3D3059&t_u=https%3A%2F%2Frandywestergren.com%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&t_e=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude&t_d=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude&t_t=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude&s_o=default#version=aec03551fc5e527e48dfb6188a272cb0","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/event.gif?abe=0&embed_hidden=0&load_time=639&event=init_embed&thread=10864566990&forum=randywestergren&forum_id=3241029&imp=8e245gpvmu0ou&thread_slug=vibe_hacking_proxying_flutter_traffic_on_android_with_claude&user_type=anon&theme=next&dnt=0&tracking_enabled=0&experiment=videofloorexp_hidden&variant=fallthrough&service=dynamic&promoted_enabled=false&max_enabled=false&referrer=https%3A%2F%2Frandywestergren.com%2F"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"cmp.gpp.absent"}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=cmp.gpp.absent"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"I’m a regular Cronometer user and as usual, I was interested in exploring the API driving the app – authentication, request patterns, the typical curiosity that drives my posts. When my go-to Android MiTM approach failed, my curiosity only increased and I brought in Claude Opus 4.5 to help troubleshoot. What followed was an interesting …","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","img_pview":true,"lang":"en","location":"/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073925574.8203,"sop":false,"title":"Vibe Hacking: Proxying Flutter Traffic on Android with Claude - Randy Westergren","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","uuid":"64a15271-9167-42f8-b096-59a36067de0d","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073925574.82036&hostname=randywestergren.com&location=%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&title=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude%20-%20Randy%20Westergren&sop=false&description=I%E2%80%99m%20a%20regular%20Cronometer%20user%20and%20as%20usual%2C%20I%20was%20interested%20in%20exploring%20the%20API%20driving%20the%20app%20%E2%80%93%20authentication%2C%20request%20patterns%2C%20the%20typical%20curiosity%20that%20drives%20my%20posts.%20When%20my%20go-to%20Android%20MiTM%20approach%20failed%2C%20my%20curiosity%20only%20increased%20and%20I%20brought%20in%20Claude%20Opus%204.5%20to%20help%20troubleshoot.%20What%20followed%20was%20an%20interesting%20%E2%80%A6&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=64a15271-9167-42f8-b096-59a36067de0d&description=I%E2%80%99m%20a%20regular%20Cronometer%20user%20and%20as%20usual%2C%20I%20was%20interested%20in%20exploring%20the%20API%20driving%20the%20app%20%E2%80%93%20authentication%2C%20request%20patterns%2C%20the%20typical%20curiosity%20that%20drives%20my%20posts.%20When%20my%20go-to%20Android%20MiTM%20approach%20failed%2C%20my%20curiosity%20only%20increased%20and%20I%20brought%20in%20Claude%20Opus%204.5%20to%20help%20troubleshoot.%20What%20followed%20was%20an%20interesting%20%E2%80%A6&img_pview=true"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1789073925579,"_s":1,"_ss":1,"are":1,"cid":92899796.1789074,"dl":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","dma":1,"dma_cps":"a","dt":"Vibe Hacking: Proxying Flutter Traffic on Android with Claude - Randy Westergren","en":"page_view","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6990v894888167za200zd894888167","ngs":1,"npa":1,"pscdl":"","rcb":6,"sct":1,"seg":0,"sid":1789073925,"sr":"430x739","tag_exp":"115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153","tfd":1138,"tid":"G-B7HQVT0N7B","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-B7HQVT0N7B&gtm=45je6990v894888167za200zd894888167&_p=1789073925579&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=92899796.1789073926&frm=0&ngs=1&pscdl=&rcb=6&sr=430x739&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153&sid=1789073925&sct=1&seg=0&dl=https%3A%2F%2Frandywestergren.com%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&dt=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude%20-%20Randy%20Westergren&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=1138"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":null,"id":"UA-17761407-1"}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-17761407-1&cx=c&gtm=4e6990"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"I’m a regular Cronometer user and as usual, I was interested in exploring the API driving the app – authentication, request patterns, the typical curiosity that drives my posts. When my go-to Android MiTM approach failed, my curiosity only increased and I brought in Claude Opus 4.5 to help troubleshoot. What followed was an interesting …","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","lang":"en","location":"/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073925574.8203,"sop":false,"title":"Vibe Hacking: Proxying Flutter Traffic on Android with Claude - Randy Westergren","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","uuid":"64a15271-9167-42f8-b096-59a36067de0d","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073925574.82036&hostname=randywestergren.com&location=%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2Fvibe-hacking-proxying-flutter-traffic-on-android-with-claude%2F&title=Vibe%20Hacking%3A%20Proxying%20Flutter%20Traffic%20on%20Android%20with%20Claude%20-%20Randy%20Westergren&sop=false&description=I%E2%80%99m%20a%20regular%20Cronometer%20user%20and%20as%20usual%2C%20I%20was%20interested%20in%20exploring%20the%20API%20driving%20the%20app%20%E2%80%93%20authentication%2C%20request%20patterns%2C%20the%20typical%20curiosity%20that%20drives%20my%20posts.%20When%20my%20go-to%20Android%20MiTM%20approach%20failed%2C%20my%20curiosity%20only%20increased%20and%20I%20brought%20in%20Claude%20Opus%204.5%20to%20help%20troubleshoot.%20What%20followed%20was%20an%20interesting%20%E2%80%A6&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=64a15271-9167-42f8-b096-59a36067de0d"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-B7HQVT0N7B"}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-B7HQVT0N7B"},{"data":{"body":{},"filter":"||ws.sharethis.com^$script","listName":"easyprivacy.txt","query":{"product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","ver":1766267309}},"stack":[{"fileName":"https://randywestergren.com/vibe-hacking-proxying-flutter-traffic-on-android-with-claude/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://ws.sharethis.com/button/st_insights.js?publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&product=feather&ver=1766267309"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.google-analytics.com/analytics.js"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"Development, security research, and other adventures in code","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","img_pview":true,"lang":"en","location":"/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073922051.3848,"sop":false,"title":"Randy Westergren - Development, security research, and other adventures in code","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/","uuid":"943880b7-c63b-45a3-bdd6-75a2cefc56f2","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073922051.38473&hostname=randywestergren.com&location=%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2F&title=Randy%20Westergren%20-%20Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&sop=false&description=Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=943880b7-c63b-45a3-bdd6-75a2cefc56f2&description=Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&img_pview=true"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1789073922060,"_s":1,"_ss":1,"are":1,"cid":523427593.1789074,"dl":"https://randywestergren.com/","dma":1,"dma_cps":"a","dt":"Randy Westergren - Development, security research, and other adventures in code","en":"page_view","frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6992h2v894888167za200zd894888167","ngs":1,"npa":1,"pscdl":"","rcb":4,"sct":1,"seg":0,"sid":1789073922,"sr":"430x739","tag_exp":"115616986~115938466~115938468~118897920~118897930~120213116~120385423~120469145~120469153","tfd":1512,"tid":"G-B7HQVT0N7B","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-B7HQVT0N7B&gtm=45je6992h2v894888167za200zd894888167&_p=1789073922060&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=523427593.1789073922&frm=0&ngs=1&pscdl=&rcb=4&sr=430x739&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115616986~115938466~115938468~118897920~118897930~120213116~120385423~120469145~120469153&sid=1789073922&sct=1&seg=0&dl=https%3A%2F%2Frandywestergren.com%2F&dt=Randy%20Westergren%20-%20Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=1512"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"cx":"c","gtm":"4e6992h2","id":"UA-17761407-1"}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=UA-17761407-1&cx=c&gtm=4e6992h2"},{"data":{"body":{},"filter":"||l.sharethis.com^","listName":"easyprivacy.txt","query":{"description":"Development, security research, and other adventures in code","event":"pview","fcmp":false,"fcmpv2":false,"hostname":"randywestergren.com","lang":"en","location":"/","override":"OTQuMjMuNDMuMTkx","product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","sessionID":1789073922051.3848,"sop":false,"title":"Randy Westergren - Development, security research, and other adventures in code","ua":"","ua_full_version_list":"","ua_mobile":false,"url":"https://randywestergren.com/","uuid":"943880b7-c63b-45a3-bdd6-75a2cefc56f2","version":"st_insights.js"}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://l.sharethis.com/pview?event=pview&version=st_insights.js&lang=en&sessionID=1789073922051.38473&hostname=randywestergren.com&location=%2F&product=feather&fcmp=false&fcmpv2=false&publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&url=https%3A%2F%2Frandywestergren.com%2F&title=Randy%20Westergren%20-%20Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&sop=false&description=Development%2C%20security%20research%2C%20and%20other%20adventures%20in%20code&ua=&ua_mobile=false&ua_full_version_list=&override=OTQuMjMuNDMuMTkx&uuid=943880b7-c63b-45a3-bdd6-75a2cefc56f2"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-B7HQVT0N7B"}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-B7HQVT0N7B"},{"data":{"body":{},"filter":"||ws.sharethis.com^$script","listName":"easyprivacy.txt","query":{"product":"feather","publisher":"eba0f3ba-f9ab-408c-bc68-c28af5afe749","ver":1766267309}},"stack":[{"fileName":"https://randywestergren.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://ws.sharethis.com/button/st_insights.js?publisher=eba0f3ba-f9ab-408c-bc68-c28af5afe749&product=feather&ver=1766267309"}]}}