霓虹旅行(Trip Japan)

霓虹旅行

2024.9.26(25)-10.3(4)

2024.9.25 - 10.3

证件

护照:2024.7.16

签证:2024.8.9 - 8.20

身份证(虽然没用还是带吧)

护照、身份证及电子件

住宿行程单(中文、日语及英语?)

Visit Japan Web 入境卡

行李

手机、电话卡、充电器、充电宝(不需要变压器,也应该没有什么用电的其他东西)

衣物3-4套(看大连人穿啥?)

现金、信用卡

垃圾袋小卷 + 小布包

雨伞

洗浴品一点点

刮胡刀

安全

中国驻日本领事馆 Tel:03-3403-3388

开通国际长途/漫游

电话这里有一个坑,如果是外省工作的小伙伴,用的是其他省发的电话卡,如果是老卡,是无法在工作省直接线上办理国际长途/漫游的,线下办理也会需要你回发卡省,其实出国不能打电话还好,但是可能会收不到短信验证码,这个我朋友的解决办法是买一个国际最便宜的流量包(如电信日本10元/100MB),他就会帮你开通短信服务,这个要过去再试验一下

保证手机和充电宝电量充足

每天回到酒店一定要充电,出去玩随身一定要带好证件、充电宝、充电器、伞、现金

国内联系

不时和国内家人或朋友联系,我甚至在 Github 上建了一个 repository,更新自己的情况(互联网传输协议比电话通讯可靠的一集)

有用的Site

机票

天巡

Tips:其实我从很早就开始看机票,在离预定出发两个月前的时间,有东航浦东出发(1864)的机票,因为7月中旬才办护照,要8月初才到所以错过;

后来不得已在距出发时间一个半月左右的8月中旬,买了萧山出发厦航(2438),虽然这个时候还是上海春秋便宜(1700-1800),但是如果算行李额、来回高铁费用时间、餐点、出发和到达时间等,感觉不值

img

天气&活动

ウェザーニュース-气象新闻公司

Apple Weather

agoda-景点及车票 (无法银联、国内VISA付款了)

关西-日本国家旅游局

门票&预定

agoda-景点及车票

虽然各个景点都有官方售票站点,但是 Agoda 一般更便宜些,以下记录均为官方站点与官方票价(无法银联、国内VISA付款了)

klook-客路 最好去国内下单,比直接日元更便宜

kkday 我强烈怀疑agoda就是调用的这家接口,钱付出去订单确定了一小时后还能和你说对不起取消了,然后钱过一段时间原路返回= =

大阪城 - 600 JPY 9:00-17:00

萬博紀念公園 - 230 JPY 9:30-17:00

梅田空中庭園 - 2000 JPY 9:30-22:30

通天閣 - 1000 JPY 10:00-20:00

Harukas300展望台 - 2000 JPY 9:00-22:00

海遊館 - 2700 JPY 9:30 - 20:00

天保山大摩天輪 - 900 JPY 10:00 - 22:00

東大寺 - 800/1200 JPY 7:30 - 17:30 但实际上不进去展览馆之类的应该不需要门票钱,线上好像无法直接售票

春日大社 - 500/1500 JPY 6:30 - 17:30 但实际上不进去展览馆主殿之类的应该不需要门票钱,线上好像无法直接售票

天龍寺 - 500/1300 JPY 8:30 - 17:00 但实际上不进去主殿诸堂之类的应该不需要门票钱,线上好像无法直接售票

嵯峨野観光鉄道トロッコ列車 - 1960 JPY 9:00 - 17:00

京都國際漫畫博物館 - 1200 JPY 10:00 - 17:00

有用的APP

DeepL —— 拍照翻译(后来用 Apple 自带的翻译了)

Google Map —— 地图导航、找吃的、找住的近的地方、找景点位置和大致距离

Apple Map —— 补充交通票细节和一些没有的线路

手写日语输入 —— 不会打日语,很多菜单是手写体,拍照翻译效果很差,要用手写日语输入后进行翻译

Suica&Apple Pay —— 有信用卡后好像可以移动支付了,不需要去充实体卡了

交通卡这里有个大坑,首先,Suica的实体卡在关西好像线下无售,能买到的是ICOCA,使用范围和Suica差不多,但是我不推荐买实体Suica或者ICOCA卡,因为你很有可能无法电子充值

ICOCA是官网指明了不能信用卡充值,Suica你也无法用银联或者国内银行开具的VISA充值,我采用的方式是 Apple Pay(这里很建议出国的小伙伴用iPhone),这是我实验下来唯一能电子充值的办法:

不需要更改国家地区,不需要下载Suica的APP,你只需要打开Apple Pay,绑定一张普通的储蓄卡(普卡),然后点击交通卡 - Suica,往里添加1000JPY,能成功,理论上就能在日本用了

银联卡持卡人可通过Apple Pay线上充值日本交通卡 - 20210222

但是我自己的实操是:银联信用卡可以添加进 Apple Pay,国内银行开具的VISA不行,且Suica的APP也不认银联信用卡作为充值方式,但是!用储蓄卡可以,通过添加储蓄卡在Apple Pay然后添加Suica卡在Apple Pay,可以充值,不需要现金和实体卡,有点逆天了……(这个之后我会在日本再试试看,实在不行还是需要现金充值)

预估花费

护照费用:130 RMB

签证费用:155 RMB

机票费用:2438 RMB

新干线(大阪-东京):700 x4

现金:3-4w JPY?(1500-2000 RMB)

电话卡:85 RMB

住宿费用:43513 JPY - 39.5 USD + 29165 JPY 约等于 3267.99 RMB

最小漫游包:10 RMB

大阪地鐵巴士乘車券 1日:820 JPY(用于9.28)有点坑,急行和延长线不让坐,还不让退,结论是小亏了

京都觀光乘車券 1日:700 JPY(用于9.30)属于是没啥赚头

JR 關西廣域鐵路周遊券 5日(12000 JPY),可以去天桥立,并且能从去奈良那天就开始用,但到奈良的地方不是很好(站和奈良公园有一点点距离),奈良去京都也能用,伏见去宇治也能用,最后京都回大阪关西机场也能用,算是小赚,但需要记得用周游券在绿色换票机换票和预约,尤其是预约线路,不知道能不能提前预约后面几天的,详见绿色换票机

这里要说一句,还有一个關西鐵路卡2日(5600 JPY),之前是 4000 JPY,能满足我从大阪到神户神户回大阪大阪去奈良奈良到京都的需要,但是9.28-29两天的通行加起来大概 4000 JPY,很可惜

支付方式

交通:Suica —— JR、地铁、电车、公交

便利店:Alipay、Wechat、VISA

小吃:现金

机票酒店:VISA、银联

Tips:极其建议去境外旅游的朋友办理信用卡,合理使用,清款后可以注销,因为包括机票、酒店、景点的提前预定尤其是线上支付,可能只认信用卡,即使PayPal也需要绑定信用卡支付

从个人实际来看,如果你确定满足签证条件(大把握能过),提前两个月订机票和酒店是无比合适的,价格更低,更有余量,而机票可能能用Wechat/Alipay直接买下,酒店是只能国际信用卡(银联看情况是否能使用)才可以提前好久预定不支付且长时间免费退订的,用Wechat/Alipay会强制要求直接支付,所以建议办理信用卡

img

景点选择

img

此图为景点的相对位置,比例尺为1:20公里(见右下角),下列景点中“√”为大概率前往,“-”为许可内便顺路前往,“x”为暂定不前往

难波 Nanba (√)

難波

大阪的市中心商业街,是大阪市最繁荣的地方,集美食、娱乐及购物于一身,其覆盖范围之大足够逛一整天,包括道顿堀、心斋桥、戎桥筋、千日前、美国村、南船场等。

戎桥筋 (√)

戎桥筋

难波区的娱乐地带,有电影院、游艺中心等,同时有服饰、美妆等商店。对于美食爱好者而言,则必需品尝大阪 りくろ(Rikuro) 老爷爷起司蛋糕和551蓬莱肉包。

千日前道具街 (√)

千日前道具街

各种商店都有,但以餐具为主。这儿的餐具做工非常精细,款式极多,不但能找到值得收藏的餐具,更是挑选伴手礼或礼物的好地方。著名的餐厅如美津大阪烧、一兰拉面亦在此。

美国村 (x)

American Village (美国村)

对于喜欢古着和二手衣服的人,美国村是你的必到之处。这儿有非常多古着店,价格比东京便宜,而且二手衣服的种类很多,又保存得非常好,完全看不出是二手的。此外,这儿亦有很多潮流特色品牌,如Vancy, F t F, TreFac Style, KINJI (in Big Step), FLYING TIGER COPENHAGEN, OPA, Uncle Sam,是年轻人喜欢流连的地方。这儿的装潢明显与其他街道不同,充满美国风情,更可以找到自由神像呢﹗

心斋桥 Shinsaibashisuji (√)

心斋桥 Shinsaibashisuji

心斋桥和道顿堀是大版最有名的商店街,两者相连形成长长的购物大道。心斋桥以购物商店为主,从药妆如松本清、SUN DRUG、大创 DAISO,便宜服饰如ARA、H&M、UNIQLO、FOREVER 21到知名品牌都应有尽有。其中「大丸松阪屋百货」有很多受日本年轻人喜爱的品牌,如WEGO、GU、Desigual、Lowrys Farm、Lowrys Farm。喜欢时装的人绝都不能错过。

道顿堀商店街 Shinsaibashi-Suji (√)

道顿堀商店街

道顿堀是难波区的美食街,这儿云集了日本各县市的经典美食,如大阪烧、章鱼烧、拉面、蟹肉料理。当中推荐美食有:四天王拉面、たこ家道顿堀くくる(明石烧)、蟹道乐和Pablo 半熟起司蛋糕。

记得在社交平台常见的跑人与街口会动的大螃蟹招牌吗?这个著名的拍照景点就在道顿堀荣桥旁的奔跑的固力果(Glico)。除了这个跑人,河岸两旁是各大霓虹广告,入夜后倒映在运河上,形成一波波紫色、红色、蓝色交替的彩光,份外漂亮。这儿亦有各大夜店和娱乐场所,可谓越夜越精彩。

大阪环球影城 Universal Studios (-/x)

大阪环球影城 universal studio

著名的环球影城是到大阪必不可错过的景点。尽管门票贵得惊人,但能一睹小小兵的可爱面目,笔者觉得值回票价。

大阪环球影城 universal studio

大阪的环球影城特色是「哈利波特」和「小小兵乐园」。全亚洲只有这儿有哈利波特乐园,整个活米村场景简直是完美复制和呈现。至于「小小兵乐园」,自2017年4月开幕以来,一直是这儿最热门的园区。这儿有不少电影中的可爱场景供拍照用,餐厅和小食店出售很多小小兵造型的食物,而且周边商品极多,如文具、杯子、娃娃,其中最受欢迎的商品必定是小小兵爆米花桶。如果你运气好,会不时碰到在园区内随处出没的真人版小小兵,造型不一;加上小小兵游行,绝对会让小小兵粉丝疯狂。

大阪环球影城 universal studio

由于环球影城的人气高企,每项游戏的排队时间长达1-3小时不等,所以建议大家出发前先在网上购买快速通关券,这样便可以缩短哈利波特禁忌之旅、小小兵疯狂乘车游、飞天翼龙、蜘蛛人惊魂历险记4K3D、大白鲨®、侏罗纪公园乘船游™等多项游乐设施的等候时间。

黑门市场 Kuromon Market (√)

Kuromon Market (黑門市場)

黑门市场是海鲜批发市场,是继道顿堀外另一个美食集中地,两者相距约10分钟。这儿的海鲜特产包罗万有,来自日本不同地方,连和牛、著名的水果都有。由于价钱相宜,深受当地日本人欢迎。推荐几间笔者喜欢的餐厅供大家参考:みな美(河豚)、丸善食肉店(和牛铁板料理)、まぐろや黒银(黑鲔鱼)、山田さんち(无骨鸡翼)、鱼福(扇贝)、鲜鱼川崎(鲷鱼和松叶蟹)。

黑门市场的营业时间为早上九点。由于人潮众多,建议大家早点前来觅食。

大阪城 Osaka Castle (√)

大阪城 Osaka Castle

和名古屋城、熊本城并列日本三大名城的「大阪城」位于大阪城公园,当中的景点包括「西之丸庭园」和「大阪城天守阁」。前者是大阪的赏樱名胜之一,其他季节还可以欣赏枫叶和银杏。可惜笔者到访之时正值夏季转秋,无缘一睹繁花似锦的景象。

大阪城 Osaka Castle

「大阪城天守阁」早于1585年便已建成,但后来于战争中被烧毁。现存的天守阁建于80年前,主要展现丰臣秀吉时代的建筑特式和历史,如著名的大坂夏季之战。在天守阁的顶楼还可以眺望大阪市的景色。天守阁的门票为600日元,持周游卡可以免费进场。如果你对历史深感兴趣,可以抽空到附近的大阪历史博物馆逛逛。

大阪梅田空中庭园 Kuchu Teien Observatory (√)

大阪梅田空中庭园 Kuchu Teien Observatory

梅田是大阪的购物区,这儿有非常多大型百货商场,如阪急百货、阪神百货、GRAND FRONT、LUCUA、伊势丹、大丸百货、HEP FIVE、大阪梅田地下街,充满时尚潮流服饰。

大阪梅田空中庭园

從梅田車站姐地下道走到藍天大廈空中庭園展望台,你可以從73公尺的高處、360度零死角地欣賞大阪的景色,是看夜景的好地方。晚上的展望台滿佈燈飾,35至39樓有人造的星空隧道,平台有愛心鎖,很適合情侶拍拖。

天王寺及阿倍野地区 Tennoji Ward & Abeno Ward (√)

天王寺及阿倍野地区 Tennoji Ward & Abeno Ward

除了难波、心斋桥和道顿堀,大阪另一个购物和美食天堂便是天王寺和阿陪野。这儿有三家不同价位的百货公司:免税商店集中地「天王寺MIO」(Tenoji MIO)、小资之选「阿倍野Q’s MALL」(Abeno Q’s MALL)及名牌天堂「倍野近铁百货」(Abeno Harukas)。

除了购物,天王寺一带还有不少值得逛逛地方,如日本最古老的佛寺四天王寺,每月的21日都会有「大师会」,到处都是露天市集和摊档。还有适合亲子游的天王寺动物园、拥有超美夜景的阿倍野HARUKAS 300 观景台,站在展望台上,整个大阪的景色都一览无遗。

新世界及通天阁 Shinsekai & Tsutenkaku (√)

新世界及通天阁 Shinsekai & Tsutenkaku

「新世界」曾经是大阪最繁荣的地区,亦是大阪的商业中心。这个地区的地标是由设计东京铁塔的建筑师内藤多仲设计的「通天阁」,连着大大的河豚气球在天空飘浮,非常醒目。自从道顿堀开发后,新世界便慢慢没落。幸得政府近年积极发展,才令这一带再次回复生气。

昔日的新世界是庶民集中地,因此這兒的美食、餐廳及娛樂設施都是庶民價錢,味道卻不比大餐廳差。筆者曾在這兒吃過非常好吃的大阪燒和章魚燒,價格相宜。加上這兒有很多便宜的旅館,對於預算有限的旅人而言,新世界是個不錯的住宿選擇。

大阪今昔馆 Osaka Museum of Housing and Living (x)

大阪今昔馆 Osaka Museum of Housing and Living

邻近天神桥筋商店街的大阪今昔馆是日本首间以大阪住宅和生活为主题的博物馆,重现了江户时代后期的生活原貌,是亲子旅游和下雨天的好去处。 10楼是观景台,可以由此俯瞰江户大阪,而 8楼和9楼是今昔馆展区。 8楼展示了初代通天阁等江户时代的模型,9楼则是可以穿着和服体验江户时代后期的生活,逛逛当时的商店,在街道上留影等。

天然温泉浪速之汤 Tennen Onsen Naniwa-no-yu (x)

天然温泉浪速之汤 Tennen Onsen Naniwa-no-yu

喜欢泡温泉的人,如果手持大阪周游卡便可以免费享用「浪速之汤」的天然温泉。这儿的温泉有露天和室内两种,即使下雨也不怕行程受影响。 「浪速之汤」的温泉素来有「美人汤」的美誉,有露天浴场及岩盘浴等,泡汤时间不限,可以慢慢享用不同类型的温泉,如冷泉、碳酸泉、按摩池等。泡完温泉还可以享用盐桑拿、蒸气桑拿,非常写意。

笔者首推露天温泉,可以一边泡汤,一边欣赏大阪市的夜色,非常有度假感,之后再到室内池泡泡冷泉提神,然后到旁边的天神桥筋商店街吃饭。

中之岛 Nakanoshima (-)

中之岛 Nakanoshima

中之岛是大阪市的第一个公园,因为介于河道之间而呈长条形,长约1.5公里,面积很大。当中的绿化地方很多,如环绕着公园而建的绿色步道,非常适合散步和慢跑。

中之岛的值得一逛的地方有很多,如以巴洛克样式建成的中之岛图书馆、展示了中国和朝鲜陶瓷的东洋陶瓷美术馆、重要文化财的中央公会堂,经常举办大小不同的文化艺术活动。

中之岛 玫瑰园

最令中之岛闻名的是位于公园中央的玫瑰园(Nakanoshima Rose Garden)。园区占地1万3千平方尺,长约500公尺,种植了超过3700株玫瑰,品种多达300种。每年五月和十月的花季,不同色调的玫瑰在园内争妍斗丽,大小不一,各具美态,远看像极了凡尔赛宫的玫瑰园,绝对值得一访。

箕面瀑布 Minoo Falls (x)

箕面瀑布-Minoo-Falls

箕面瀑布位于日本最古老的森林公园—「明治森林箕面国定公园」内,当年是为了纪念明治天皇登记百年而设立的。箕面瀑布入选百大之一,附近有一个平台可以让人免费拍照。而每年的11月中旬到12月上旬,整个山头都是一片火红,是大阪著名的赏枫地点。由于公园的面积大,所以枫叶季时份外壮观。最理想的赏枫地点是泷安寺、西江寺和桥木亭一带,可以看到绿、红、橘、黄等不同层次的枫叶。

红叶天妇罗

箕面公园内的商店街挺好逛的,其中最令笔者印象深刻的食物要数枫叶季限定的「红叶天妇罗」,把枫叶用盐渍过后再裹上粉浆油炸。论口感和美道,笔者还是觉得原始的天妇罗比较好吃,但也是一种有趣的体验吧。

万博纪念公园 Expo ’70 Commemorative Park (√)

万博纪念公园 Expo ’70 Commemorative Park

万博纪念公园的前身是1970年的世界博览会会场,改建后的公园仍保留了当年世博会的场馆太阳之塔和钢铁馆等建筑,同时新建了文化园和日本庭园等,种植着不同种类的植物,四季宜人,景色不一,如樱花、绣球花、向日葵、红叶等,是赏花的好去处。

大阪的祭典如夏天的萤火虫之夜、向日葵祭等都会在这儿举行,有时会有水上乐园、灯饰、鬼屋等。除了祭典,公园旁边有一间日本最大的复合设施商场「EXOICITY」,不少品牌和餐厅进驻其中,亦有户外游乐设施供孩子玩乐,非常适合家庭旅行。

难波八阪神社 Namba Yasaka Shrine (-)

难波八阪神社 Namba Yasaka Shrine

在繁荣热闹的难波之中,有一个非常巨大和突出的青色狮子殿隐身在难波宁静的社区之中。这一庭青色狮子殿是一个张开了大口的狮子头,叫八阪神社,高12公尺,阔11公尺,非常引人注目。相传八阪神社是为了追忆仁德天皇而建的,后来因为种种原因而搬到这儿,并以祈求「金运」和「必胜运」闻名。

走进神社就像是走进了狮子的口中,感觉非常有趣。每年新年,这儿都会有神乐表演、舞蹈表演等,偶尔有撤饼、撒豆等各种祭神活动,非常热闹,颇值得到访。

天神桥筋商店街 Tenjinbashisuji Shopping Street (√)

天神桥筋商店街 Tenjinbashisuji Shopping Street

全长约2.6公里的「天神桥筋商店街」又被称为日本第一长商店街,横跨了堺筋线三个地铁站。如果在心斋桥找不到心头好,或想避开心斋桥的人潮,不妨来这里寻宝。这儿有餐厅、药妆店、超市、电器,想得到的都可以找到。至于美食,笔者推荐中村屋(可乐饼)、鸣门鲷鱼烧本铺、玉出超市(一日元贷品)和章鱼烧道乐Wanaka。 Wanaka曾入选米芝莲推荐餐厅,千万不可以错过。

天满宫

天神桥2 丁目有一座著名的神社「天满宫」,供奉着学问之神「菅原道真」,每年都吸引很多莘莘学子前来参拜。每年七月,这儿会举拜日本三大祭典之一的「天神祭」,届时会有充满日本传统特色的游行,非常壮观。

大阪造币局 Japan Mint (x)

大阪造币局 Japan Mint

大阪造幣局博物館雖然是展出錢幣及其生產過程,但其實這個地方是以當中的櫻花大道聞名,堪稱一個櫻花博物館。這一條櫻花隧道全長570公尺,不但是季節限定,而且一年只開放7天供市民免費入場參觀,因此每天有為數不清的當地人和旅客慕名而來。局內的櫻花數量繁多,超過一百種櫻花,顏色多樣,能一次看盡櫻花的各種姿態。由於每年開花的時間不一,有興趣的旅人必須關注官網的最新動向,才不必錯過其風采。

大阪儿童乐园 Kids Plaza Osaka (x)

大阪儿童乐园 Kids Plaza Osaka

一直听说大阪是个非常适合亲子旅行的地方,因为这儿有很多适合小孩子放电的地方,譬如大阪儿童乐园。这是一个集合了自然科学、创意、冒险、文化于一身的乐园,楼高5层,每一层的主题不一样。小孩子能学会许多科学原理,又有机会发挥创意创作,并训练五感。想参加DIY的小朋友记得要及早报名喔。这儿的入场费不算贵,大人1400为日元、小中学生为800日元,3岁以上则为500日元,可以作为雨程的选择。

天保山港灣村是一個複合型娛樂中心,當中有很多好玩的設施,包括海遊館、天保山市場街、⼤阪樂⾼樂園、天保山摩天輪及聖瑪麗亞號-帆船型觀光船,非常適合一日遊。

帆船行观光船 – 圣玛莉号 Santamaria Platform (-)

帆船行观光船 – 圣玛莉号 Santamaria Platform

畅游大阪港湾并欣赏沿路风光的最佳方法是搭乘帆船型观光船—圣母玛利亚号。圣母玛利亚号是模仿哥伦布发现新大陆时所使用的船只建成,但尺寸比原版大两陪,载客量大。每天的班次分成白天和黄昏两种,前者每45分钟一班,后者则每小时一班,门票的价格亦有所不同,但使用大阪周游卡则可以免费搭乘。

白天游览:成人1,600日圆、儿童800日圆
黄昏游览:成人2,100日圆、儿童1,050日圆

海游馆 Osaka Aquarium Kaiyukan (√)

海游馆 Osaka Aquarium Kaiyukan

海游馆是日本规模最大的水族馆之一,饲养了六百多种、近三万只海洋生物,如水獭、海狮、企鹅、海豚、水母等,连全世界最大的鱼类鲸鲨也有,保证让人大开眼界。海游馆每日都有动物喂食秀,如企鹅、海豚、鲸鲨。出发前可先到官网查看时间表,千万不要错过喔﹗此外,游客还可以在这儿与鲨鱼互动,一尝触模鲨鱼的滋味,非常适合亲子旅行。

由于海游馆的门票价格高昂,笔者建议购买「大阪海游票」,除了入场卷外,还包括了一天内无限次搭乘电车和公车,是最划算的方案。

大阪乐高乐园 LEGOLAND (-)

大阪乐高乐园 LEGOLAND

大阪另一个让小孩子疯狂的地方—乐⾼®游乐场。这个室内游乐场位于大版港站,交通便利。乐园规定小孩和成人必需同时进场,是专门为小孩/亲子设计而成的园区,设有好玩的游乐设备,如4D电影院、乐高工厂之旅、古堡历险、魔法转盘等。门票为2300日元,而且小孩3岁以上便需购票进场。笔者觉得价格颇高,但如果持有大阪周游卷便可以免费入场。

天保山大摩天轮 Tempozan Giant Ferris Wheel (√)

天保山大摩天轮 Tempozan Giant Ferris Wheel

笔者向来对摩天轮情有独钟,喜欢坐在车厢中慢慢欣赏景色。天保山的大摩天轮高达112公尺,旋转一周的时间约15分钟,可以远眺天气好时可纵目四眺大阪港湾、关西国际机场等景点,非常适合情侣和家人来这儿放松身心。其中四个车厢是全透明的水晶车厢,没有恐高症的人可以搭乘看看。最特别的是,摩天轮会于入夜后亮灯并预报隔天天气,红色代表晴天、绿色代表多云、蓝色则代表雨天。即使对摩天轮没有兴趣,晚上在附近逛逛和拍照也不错。

临空城 RINKU PREMIUM OUTLET (-)

临空城OUTLET

想把握时间在日本大卖特卖的人,可以考虑到距离关西机场仅20分钟车程的临空城OUTLET。这儿有超过200家品牌商店,商品种类众多,服饰、鞋履、厨具、行李箱等都应有尽有,价格便宜。不少日本自家品牌如Peach John、Samantha Thavasa、As Know As、Beam都在其中,连著名的运动品牌如Adidas、Le Coq Sportif、New Balance、Nike、Vans等都有,绝对是回国前血拼最后一波的最佳地点。

电电城 でんでんタウン (√)

img

探索日本粉丝文化

电电城的街道上聚集了无数的书呆宅、科技宅与各种搜藏迷。此地的零售商店专门贩卖能满足各种特定兴趣的商品,包括动漫、塑料公仔、交换卡牌和电子产品等。电电城是各类搜藏迷的天堂。

京都 Kyoto

清水寺 (√)

img

京都名寺,不只是壮丽的风景

清水寺坐落于京都东面的一座小山上,从这里可以俯瞰京都全景。寺内由巨大立柱支撑的高台是日本最著名的形象之一。清水寺有的不只是优美的景色,在您抵达这座寺庙之前,参观就已经开始了。

鴨川 (√)

img

在京都风景优美的主要水道沿岸享用美食并领略传统文化

无论何时,鸭川河岸都是远离城市喧嚣的完美场所。早上与当地居民一道沿着河岸散步、野餐,或在附近的餐馆用餐。游览先斗町,体验当地丰富的传统文化和艺伎文化。

高台寺 (-)

img

华美的寺庙,致敬足智多谋的领主

信步登上祇园的山丘就会看到高台寺。这座寺庙是丰臣秀吉的遗孀为纪念丈夫而建造的。

丰臣秀吉的继任者德川家康协助了高台寺的建造,而丰臣秀吉的遗孀聘请了当时最著名的建筑家、画家和园林设计师。

錦市場 (√)

img

京都人的厨房:生意持续兴隆400年

今天的锦市场与 400 多年前的露天鱼市场大为不同。

在锦市场,130 家摊贩挤在一条长约 400 米、宽约 3.9 米的狭窄通道中。

祇園 (√)

img

艺伎文化和歌舞伎的发源地,精心保留了昔日的风貌

祇园是探索京都另一个时代的绝佳场所。祇园被称为京都的娱乐区,尤其是那些被称为艺妓(或者说艺子更为恰当)的优雅表演者数百年来令观众深深着迷。在这里,低调美观的排屋和茶馆、提供传统京都美食的餐厅以及肃穆庄严的寺庙和神社比比皆是。

先斗町 (√)

img

参加独特的娱乐活动,在河畔用餐,再到历史悠久的艺伎区体验夜生活

京都的先斗町地区以一条长巷为中心,这条巷子已铺设路面,两旁是鳞次栉比的传统木制建筑。先斗町白天静谧,晚上则热闹纷呈。这里酒吧和餐馆林立,吸引了大批美食家和文化迷前来,许多店铺可以用英语和其它语言招待外国客人。

八坂神社 (√)

img

举办祇园祭的热闹神社

八坂神社是京都最受敬仰的宗教场所之一。神社几乎总是充满了活力,热切的信徒如潮水般涌来,接受福祉,祈求好运。参观这座位于京都的重要神道神社,您自己也可能会收获一些好运。

洛北 (x)

img

在京都的田园乡野造访宏伟的皇家离宫

洛北区位于京都市中心北部,历史上曾长期是艺术家和传统工匠的汇聚之地。这里不仅有静美的寺院、绿树成荫的街道、风格古朴的商店和咖啡馆,还可以欣赏到宏伟的皇家离宫。

京都国際マンガミュージアム (√)

img

老少咸宜的日本漫画圣地

所有的日本漫画迷都应前往全球第一家专门致力于这种艺术形式的综合漫画博物馆—-京都国际漫画博物馆。

哲学の道 (-)

img

在京都风景秀丽的步道上思考人生

哲学之道以京都大学哲学教授西田几多郎的名字命名,因为他曾每日在此一边散步一边冥想。蜿蜒曲折的哲学之道位于静僻的乡间,俯瞰着运河,是午后漫步沉思的理想之所。

下鴨神社 (-)

img

原始森林中 2,000 年历史的古老神社

下鸭神社是日本最古老、最尊贵的神社之一。下鸭神社位于高野川与鸭川交汇处,四周环绕着糺之森,这是一座在京都现代化改造时幸存下来的部分森林。

修学院離宮 (-)

img

欣赏皇室居所的美景

修学院离宫是在 17 世纪由退位天皇后水尾上皇兴建,包含三个御所,每间御所都设有对应的庭园。在 1964 年附近土地被征购,因此能维持离宫被田原与稻田围绕的原始样貌。

嵐山 (√)

img

以竹林、美景和著名遗产而闻名

岚山位于京都的西北地区,其世界闻名的竹林和随季节变化的美丽风景吸引了众多游客。该地区散布着寺庙、古老的皇家别墅和著名的历史古迹,其中许多都属于国宝级,甚至是公认的世界遗产。整个地区都已被日本政府指定为风景名胜区。

嵐山竹林 (√)

img

漫步于京都竹林,徜徉于绿色隧道

岚山竹林是京都最具标志性的景观之一,漫步其中,您将对这座城市留下不可磨灭的印象。

天龍寺 (√)

img

天龙寺庭园是贵族传统与禅宗文化的完美结合

天龙寺建于 1339 年,曾是一组规模宏大的寺庙建筑群,由一百多座子院组成。如今,只有一部分结构保留了下来。这里的庭园是日本传统庭园设计的最佳典范之一,也是吸引游客前来的最大原因。

嵯峨野観光鉄道 (√)

img

搭乘复古火车穿越京都令人惊叹的自然风光

嵯峨野观光铁道又称为嵯峨野浪漫列车,往返于京都西缘的小火车嵯峨站与龟冈乡村之间。铁道之旅约为 25 分钟,将在您眼前呈现京都最美丽的风景。

渡月橋 (√)

img

跨越京都乡间的美景

渡月桥全长 155 米,横跨于缓慢流经嵯峨岚山的桂川上,是京都著名的景点,可以欣赏到西部丘陵的美景。优美桥身展现出日本美学传统精髓的美感。

宇治 (√)

img

古镇茶道和浪漫河滨

宇治小镇,风景秀丽,日本 11 世纪文学名著《源氏物语》就以此地为故事背景。这里的茶园、茶铺和朝圣之地,让它成为从京都出发一日游的热门景点。

宇治还有一条与城市同名的河流,您可沿河散步,亦可在河上泛舟,沿途造访林立的众多餐馆和商铺。宇治桥曾是源氏故事的重要场景,今天已成为京都最浪漫的邂逅景点之一。宇治拥有历史悠久的茶铺和神道神社建筑。

萬福寺 (-)

img

深受中国文化影响的寺庙

万福寺是京都宇治地区的一个僻静之地,位于黄檗山山脚。这座松树环绕的寺庙于 1661 年由一位名叫隐元隆琦的中国僧人建造。寺庙属于明朝风格,许多建筑都用柚木建造而成,因此,它在两个方面都与众不同。

伏見稲荷大社 (√)

img

著名的京都神道神社,令人印象深刻的鸟居

伏见稻荷大社是日本稻荷神社的总本社,供奉着保佑五谷丰登、生意兴隆的稻荷大神。通往稻荷山的道路上矗立着似乎无穷无尽的亮橙色鸟居,令人叹为观止,是日本最著名的景观之一。

宇治川 (√)

img

于静谧的河畔拥抱茶道、历史和美好生活

宇治川将宇治市一分为二。这条河是宇治市的核心,大部分店铺与餐厅皆位于河流两岸。全球公认的第一部长篇小说《源氏物语》就描述了宇治川上诗情画意的桥梁。

宇治橋 (√)

img

一座通往宇治过往的古桥

无论是从历史角度还是在小说创作方面,宇治桥及其周边区域都与日本过往的伟大故事紧密相连。文学经典《源氏物语》中的场景与日本茶史中的真实生活场景交织在一起,形成了宇治丰富的文化背景。

京都アニメーション (√)

img

京都动画总部,已停业不再对外开放

img

img

京都动画第一工作室(遗址)

img

京都动画第二工作室

天橋立 (√)

img

踏上天然的天堂桥,漫步于松树林间

天桥立是一个种满松树林的沙洲,以拥有日本三景之一而闻名,其他两景分别是宫城县松岛,和广岛县宫岛。此沙洲为一天然桥梁,连接着京都府北部的宫津湾两岸,同时隶属国家公园。

伊根の舟屋 (√)

img

到日本最奇特的渔村里放空

迷人的伊根 (Ine) 村庄,拥有毗邻海湾的独特舟屋,提供历史悠久的建筑景观与绝佳住宿。

奈良 Nara

奈良

相信不用多作介绍,大家都知道奈良最著名的景点是什么—奈良鹿。

奈良鹿生活于奈良公园,由于公园范围很大,所以到处都可以看见它们的身影。常说日本人充满仪式感和礼貌,奈良鹿亦然。他们只要看见食物,就会一窝蜂跑到你面前向你鞠躬,非常可爱。长长的脖子做着一个非常不自然的动作,放在它们身上却份外逗趣。想喂鹿儿吃东西的话,可以在公园的小摊买鹿仙贝。因为鹿仙贝的看似可口,笔者忍不住偷尝了一口,却发觉只带有一点苦涩味,并不好吃。

奈良 - 東大寺

与奈良鹿拍过照后,可以继续向东大寺和春日大社出发。往深处走,鹿儿的数量渐渐减少,生活在这儿的鹿相较奈良公园的安静和悠闲,一副不想被打扰的模样。

奈良 - 春日大社

单就景点而论,笔者最喜欢春日大社。甫踏进春日大社的范围便仿如置身一个奇幻的森林般,静谧又空灵,不禁令人放慢脚步,生怕划破这儿的宁静。偶尔看见几头鹿儿在石灯笼和森林间穿梭,俨如神社的守护者。

神户 Kobe

不少到大阪旅行的人都会同时到周边地区游玩,其中神户和奈良绝对是首选

著名的神户牛让人唾涎欲滴,其实除了神户牛,神户还有很多好玩的地方,非常适合一日游,甚或留宿一宵。以下推介几个适合一日游的景点:

神户港 Port of Kobe (√)

神户港

这儿有着神户的地标—神户塔。神户塔有着开港的像征意义,是日本人向世界亮起的第一盏灯。楼高五层的灯塔有着令人惊艳的景色,可以欣赏整个神户港的美,而且免费开放,绝对不能错过。之后可以到附近的MOSAIC马赛克广场和美利坚公园逛逛,入夜后挺浪漫的。

旧居留地 kyuukyo ryuuti (√)

神户 - 旧居留地

日本开放时有不少外国人在这儿聚居,形成了一整排的欧式建筑。如今的房子都变成了高级精品店,但仍然吸引不少人到这儿拍照,感受欧式风情。如果你非常钟情于欧式建筑,亦可以到北野异人馆一游,但每一间都要支付门票才可进内参观。

南京町 (-)

img

神户中华街是欢乐的文化大熔炉

神户历史悠久的中华街,又称为南京町,出现于早期开始进行国际贸易与文化演变的时期。

食物选择

基本都是特别要吃的 + 景点附近能吃的 + 各种小吃 + 便利店(饮料),因为酒店选择都带自助早餐的,所以只针对午餐、晚餐及小吃,但是要注意营业时间,这个很重要

大阪

大阪烧、章鱼小丸子、拉面、乌冬、老爷爷蛋糕、可乐饼、鲷鱼烧、烤扇贝海胆、海鲜丼(551蓬莱肉包(pop子和pipi美)、Pablo 半熟起司蛋糕)

(√)

img

氛圍閒適的拉麵餐廳(10:00 - 22:00),以豬大骨熬湯製成的豚骨拉麵為特色。

img

天然とんこつラーメン(創業以来)( 980 JPY)

広東名菜 紅茶(ほんちゃ) (-)

img

如果在天满宫是在走不动饿了,就吃吃家乡饭吧(11:30 - 14:30,周日休息)2333333

img

没有实际网站和菜单,平均消费价格是在 1000-2000 JPY

可樂餅 中村屋 (√)

img

高人氣美食攤(9:00 - 16:00,周日休息),提供各種口味的可樂餅和其他炸物,可供外帶,也较便宜,90 JPY 一个普通饼。

img

排隊很長但是店家炸的速度很快,可樂餅好吃其他普普,要小心旁邊的鴿子會飛到你身上搶可樂餅XD

(√)

img

鲷鱼烧竟然是被分类为日式糖果店(11:00 - 23:00)……约 300 JPY 一个

img

有白桃、红豆、地瓜和奶油馅(?)的口味,以及抹茶、牛奶冰淇淋和方苏饼

越发为一抹多没能来玩感到可惜了呢= =

(√)

img

额,没啥好说的,真的是一路吃下去了(11:00 - 21:00,周二休息)

img

內餡很軟、很好吃,也很燙口,要小心, 建議可以買四種口味的嚐鮮(8个 600 JPY,12个 850 JPY,也有 900 JPY 口味的)

玉出超市 天神橋店 (√)

img

超级市场(),或者说是廉价市场(一日元贷品),“只有大阪才有的超市,值得來撿便宜。”

img

进去看看有没有啥喝的买,毕竟应该也不会买便当吃

(√)

img

御好燒餐廳(11:30 - 21:00),官网上是 800 JPY一份,周四休息!每月第一和第三個星期三也休息!

img

日本很多餐厅都是这样的,一定要看时间,不然就要像我一样变动景点安排了(不会我到霓虹第一天要去神户吧?草w)

(√)

img

享用新鲜捕获的扇贝和海胆!(10:00 - 16:00,周三休息!)

img

雖然熱門時段排隊要等很久很久,但如果有時間的話還是可以來看看。 大推烤扇貝,非常鮮甜,有用一點點奶油去提味。但是好像挺贵的一个!和隔壁まぐろや黒银(黑鲔鱼、金枪鱼生,5000 - 6000 JPY)有的一比。

小判屋 (-)

img

蕎麥麵店,但是可以换乌冬!(7:00 - 15:00,周六周日休息)

img

如果在鱼福太贵了且没吃饱,那就再来这里吃碗乌冬吧(600 JPY)

(√)

img

現烤的起司蛋糕(9:00 - 20:00)吃起來像是舒芙蕾, 冰過之後再吃的話是綿密的起司蛋糕

img

大阪才有的蛋糕店,是人氣排隊店,每當蛋糕出爐時店員就會搖鈴鐺提醒路人,蛋糕上印上老爺爺的可愛頭像(735/965 JPY?不同时令好像不同价格)

(√)

img

好像浪速区的大阪烧和梅田那边的不太一样(16:30 – 19:15),周二周三休息!可以去再尝试一下

img

餐點內的肉片、海鮮都給得很大方(850-1600 JPY),就是味道稍微重了些。值得一提的是这家的网站还是2002年的风格2333333

(√)

img

好像基本是海鲜丼(11:00 - 20:00),吃起来估计是大型寿司,不知道能不能接受

img

倒不是很贵(1000-2000 JPY),听说也不用排队

京都

抹茶、猪扒饭、牛肉丼、炸牛排和鳗鱼、日式餐点、烤肉自助、海鲜饭、烧烤、热狗(牛奶)

(√)

img

这家是连锁店(17:00-21:00),京都大阪神户都有,门口是自动点餐机,有中文菜单,点餐、缴费都是在门口自动完成,用现金能自动找零,还支持支付宝

img

不算太贵(1000-2000 JPY),好像还能预定,啊不对,是外卖= =

(√)

img

主打炸牛排+鳗鱼套餐(10:30-20:30)的定食餐廳,本来想在大阪吃的,但是叫“京都”所以还是来京都吃了

img

注意预约(不能在线预约了)和排队啊!(2000-3000 JPY)

(√)

img

宇治特有的抹茶店(9:00-17:00),来宇治就是吃甜点和抹茶的

img

有抹茶团子(500 JPY)、冰淇淋(500 JPY)、芭菲(850 JPY)、饭团(150 JPY)甚至拉面(900 JPY)……

豚ゴリラ 新京極六角店 (√)

img

日式炸豬扒餐廳(11:00-21:30),可以预定,啊不对,是外卖,也不太算贵(1000-2000 JPY)

img

记得发POP子和PIPI美的那集吐槽在社交平台!

鮨彦 (√)

img

典型日式小饭馆(11:30-14:00),周三休息

img

有炸鸡、天妇罗、寿司、酱鱼等(2000-3000 JPY)

丸玉飯店 (-)

img

中餐馆(11:30-21:00),如果不想吃日料可以考虑这家

img

全看那天海洋馆边上吃的海鲜饭吃不吃的下去,吃不下真要选这个(1000-2000 JPY)

国産牛焼肉食べ放題 あぶりや(炙屋) 四条河原町站前店 (√)

img

烤肉自助(17:00-22:00),确实得吃点自助看看能饱到什么程度

img

记得预约,只营业到22:00,2小时最好还是晚上时间不紧的时候去(4000-6000 JPY)

王記 (√)

img

中式烧烤(17:00-22:30),国庆去吃好像没问题

img

看评价说菜品稍微少了点,希望去的时候能吃饱就好(2000-3000 JPY)

(√)

img

海鲜餐厅(11:00-14:30),用今日获得的海鲜做食材准备的饭菜

img

真的可能会选这个限量的豪华海鲜套餐(6800 JPY),看有没有余钱吧实际考虑吃不完只好作罢,记得预约

(-)

img

他家的招牌是寿司(11:00-14:00,周四休息),可是我不太吃寿司

img

这海鲜饭好像诚意不如大阪海洋馆边上的啊(1000-2000 JPY)

BiS Dogg (√)

img

不是哥们!你有狗有车这怎么玩啊!

img

真的很想吃这个,但是好像只周六-周一,10:30-17:00上班,不是,你有好吃的有车有狗还有两只还只要上三天班早十晚五,我泪喷了出来!

神户

铁板牛肉

(√)

img

可能需要预约!(11:00 - 15:00)没预约就要碰运气了

img

表面经过烤焦,锁住风味和甜味的三分熟的神户牛排,切成适合咀嚼的厚度!奢华地铺开,直到覆盖米饭!最后,在上面放上一个融化的鸡蛋!(建议选5500 JPY的加肉版本)

奈良

寿喜烧

(-)

img

壽喜燒餐廳(11:00-22:00),听说会教怎么正确的吃233333,需要预约

img

可以预约,说实话有点贵(5170 JPY),但是听说肉品质很好?

水谷茶屋 (√)

img

只能说是柳暗花明又一村(11:00-15:30,周三休息),寿喜烧大概是吃不上了,没能预约到= =

img

希望能抢到位置吧(1000-2000 JPY),毕竟在公园里面,会被鹿袭击

住宿选择

离要去逛的地点不太远就好(离大部分景点小几站公共交通能到),一晚在300-400左右,以下酒店只是我自己看Google Map得到的,并不是自己都体验过,价格皆未含税,需要有10%-20%左右的额外费用

大阪 (2024.9.25-9.29)

ネストホテル大阪心斎橋 (Nest Hotel Osaka Shinsaibashi)

img

img

img

2-4-10 Minamisenba Chuoku, 心斋桥, 大阪, 日本, 542-0081

优点:中文服务 离徒步景点极近 价格较低,处于一年低位(277)

缺点:卫生间都较小 无早餐

天滿橋京阪酒店 (Hotel Keihan Tenmabashi)

img

img

img

1-2-10 Tanimachi, Chuo-ku, 大阪城和京橋, 大阪, 日本, 540-0012

优点:离大阪城、中之岛公园极近 有早餐

缺点:室内设计不如前者 卫生间都较小 价格较高,处于一年高位(348/413)

アパホテル〈大阪谷町四丁目駅前〉(APA Hotel Osaka-Tanimachi 4Chome-Ekimae)

img

img

img

1-1-27 Noninbashi, Chuo-ku, 大阪城和京橋, 大阪, 日本, 540-0011

优点:有早餐 价格较低,处于一年低位(263/312) 有简单公浴

缺点:房间太小了(10) 地理位置较中庸 对泡没兴趣的没必要

Vessel賓館 - 心齋橋 (Vessel Inn Shinsaibashi) (√)

img

img

img

2-12-11 Minamisenba, Chuo, 心齋橋, 大阪, 日本, 542-0081

优点:有早餐 价格适中,处于一年最低位(329/374) 房间设置合理 有免费饮品

缺点:算早餐和税后有点贵了,且必须在8月24日前付款,唯一打算放弃的理由

最后应该会在ネストホテル大阪心斎橋和Vessel賓館 - 心齋橋里选,一个三星一个偏四星,更偏向后者,但差价确实有点大

京都 (2024.9.29-10.03)

京都四條河原町R&B酒店 (R&B Hotel Kyoto Shijo Kawaramachi) (√)

img

img

img

258 Ichinocho, 河原町, 京都, 日本, 600-8018

优点:有早餐 价格较低,处于一年低位(254/279) 房间设置合理 有免费饮品 离祇園较近

缺点:房间较小(11) 评分较少

京都四条河原町超级酒店(Super Hotel Kyoto/Shijo Kawaramachi)

img

img

604-8042 京都府, 京都, Nakagyo-ku Urateramachidori Shijo Noboru Nakanomachi 538-1, 日本

优点:有免费早餐 有免费饮品 离景点公共交通很近 有小温泉

缺点:房间较小(12) 没看到卫生间样式 小温泉分时段的(也不会去) 价格较高(412)

京都中心旅館 (Kyoto Central Inn)

img

img

2Chome 30 Otabityou Higashiiru Shijo douri teramachi Shimogyo Kyoto, 河原町, 京都, 日本, 600-8002

优点:离景点公共交通很近 价格便宜(246)

缺点:房间设计不合理(13) 没看到卫生间样式 酒店显老旧

感觉京都四條河原町R&B酒店是唯一选择,京都在进入国庆后,合适的住宿都要爬上400左右,算税就真有点吓人了

Tips:日本的酒店有些是没有个人卫浴的(公浴或小温泉),有些是只限女性(Female Only),有些是青旅/胶囊式的,一定要分辨清楚

行程安排

一切行程注意点(包括循着什么路标走、从什么口出站、在哪个车站ID哪个站台号上什么车)都以 Google Map 为准,这里如果是乘 JR 铁路火车类的,建议再在 Apple Map 上看一遍路线,能看到票价和桌席价格的分开,谷歌上是把这两个价格合一起了,以下仅为简略活动记载

(要注意尽可能避开拥挤线路,也需要注意末班车时间,如果有赶不上末班车的场景,需尽早结束夜间景点游玩)

如果下雨,注意交换景点访问的同时更是要看好吃饭的问题,尽量保证雨天多室内,感兴趣景点的到访

一定要记得先把城市的地图离线下载下来,把要走的线路“钉住”保存下来

9.25 (水曜日)

萧山国际机场(厦航 MF8707)

14:40 起飞 需要提前约3小时到达萧山国际机场办理值机

地铁加步行到机场约1小时

即 10:30 左右从家出发即可 午餐在机场解决(K记/M记)

Vessel賓館 - 心齋橋(1210 JPY)

18:15 降落 到达关西国际机场 更换手机卡 买Sucia卡并狠狠充值()

去關西國際機場 LIMON 服務櫃台(關西國際機場第一航廈1樓)兑换大阪地鐵巴士乘車券 激活日期 9.26

乘南海機場線(機場線急行電車南海難波)

關西機場 - 南海難波(此时变为南海本線,但“繼續搭乘相同交通工具”)- 天下茶屋 约40分钟

从天下茶屋站外换乘堺筋線(各站停車北千里)

天下茶屋 - 長堀橋 约8分钟

步行约3分钟到达Vessel賓館 - 心齋橋,办理入住手续(check in)

一蘭 心齋橋店(1000 JPY)

19:30 先去一兰尝尝拉面 走路约5分钟,在街对面就可以到

心齋橋 道頓堀 難波

20:30 左右 从一兰步行,穿心齋橋筋商店街,达道頓堀,沿河两边逛逛,后抵難波,踩点锁定一下老爺爺蛋糕店

21:30 左右 从难波步行返回 Vessel賓館 - 心齋橋

9.26 (木曜日)

大阪城(240+600 JPY)

8:00 起床 9:00左右餐厅吃完早饭

从長堀橋出发,乘長堀鶴見綠地線(各站停車門真南)

長堀橋 - 森之宫 约7分钟 至大阪城周围

于大阪城逛 2-3 小时左右(战争博物馆、演艺剧场、神社、花园庭院、港口码头、棒球场、音乐厅)

黑门市场(190+5000-6000 JPY)

12:00 从大阪城 大手門出,经大阪歷史博物館

至谷町四丁目車站,乘谷町線(各站停車八尾南)

谷町四丁目車站 - 谷町九丁目 约3分钟

后站内换乘千日前線(各站停車野田阪神)

谷町九丁目 - 日本橋(大阪) 约2分钟

好的,现在从日本橋出站,進入堺筋/紀州街道/府道102号

找到烤扇貝 魚福,开吃,黑门市场应该有很多其他的吃的,吃不饱且有时间可以多尝试,希望不要排队排很久

如果还是饿,请移步小判屋吃乌冬面

千日前道具屋筋商店街

14:00 基本吃完了,沿サウスロード千日前向西400米,步行6分钟就能抵达

購物街,專門販售家居用品、廚具、陶器和工具。

应该不会买什么,逛逛看情况就好啦

大阪日本橋電器街(? JPY)

从千日前道具屋筋商店街經なんさん通り和堺筋/紀州街道/府道102号

600米 约9分钟 14:30/15:00 怎么都走到这了吧……

这次应该只是随便逛逛,除非遇到什么不买过几天来没了的东西

不过即使要买也不知道要买什么,没有想买周边的情况,漫画?

不过和下面要去的大商场相比,确实可以考虑下是在这里逛久点

(PS:旁边有网咖和cosplay咖啡厅,所以要小心拐人)

新世界&通天閣 (1000+1000-2000 JPY)

15:00 继续沿堺筋/紀州街道/府道102号向南900米左右,在惠美須町有一个小道,斜入通向通天閣

至于是否要上通天閣的特殊观光台,我觉得不用,或许我会经历梅田空中花园、通天阁、Harukas300展望台、天保山大摩天輪四次俯瞰大阪,到时候可以一一比较了2333333

通天閣之下的商业街便是新世界,比起登通天閣,我更想花时间在逛这片区域,这片地区有刀店、只有成年人才可以进入的遊戲機中心(柏青哥?)、MEGA 唐吉軻德(折扣店)……以至于我觉得要不别上通天阁了?

18:00 当然,如果真饿逛完后可以考虑在对面動物園前的大阪燒 千歲吃大阪烧做晚饭,或者再等下去的阿部野吃炸牛排(因为那家炸牛排叫“京都”的,所以感觉留到京都吃比较好)

Harukas300展望台(2000+240 JPY)

19:00 从大阪燒 千歲沿あべの筋/谷町筋/府道30号 步行1.1公里 约17分钟

旁边还有阿倍野 Q’s Mall、天王寺MIO这种大型购物中心,可以进去看看逛逛(但不会买什么应该),不过他们的营业时间至20:30、21:00就结束

可以先都小逛30分钟,然后20:00左右登展望台

位於 58 至 60 樓的 3 層觀景區域,設有露天中庭、玻璃牆面與咖啡館。

22:00 从天王寺乘御堂筋線(各站停車箕面萱野)

天王寺 - 心齋橋站 9分钟 后步行350米回到Vessel賓館 - 心齋橋

9.27 (金曜日)

神戶港(910 JPY)

6:30 起床(感觉会成为在大阪最早起的一天) 8:00左右就要动身了,最迟9:30抵达神户港,但有个问题,这里涉及很多的路线

我选的是 御堂筋线 - 东海道、山阳本线

一来一回,包括9.29要去的奈良、京都,神户、大阪、奈良、京都应该是有周游券之类的优惠,所以这里不指明乘坐什么线路,但大概都是能1个半小时左右到的,看各自优惠了

例如:

但基本都是在三宫站 乘新交通港灣人工島線(各站停車北埠頭 經由 三宮)

三宫 - 中埠頭(兵庫) 约15分钟

9:30 抵达神户港 逛逛防波堤、灯塔这些

三宮本通商店街&旧留居地&南京町(250+5500 JPY)

11:00 从中埠頭(兵庫)乘新交通港灣人工島線(各站停車三宮)

中埠頭(兵庫) - 三宫 约13分 步行

11:30 从三宫步行650米 约7分钟至三宮本通商店街

主要是逛逛陈列很漂亮的商业街,然后可以步行去旧居留地,看看欧式建筑

然后可以先去神戸牛 黒澤 Kobe Beef KUROSAWA 吃牛排(有点贵)

最后走走南京町,看看有没有珍珠奶茶

海遊館&聖瑪麗亞號&天保山大摩天輪(660+2700+900+1000-2000+290 JPY)

13:00 从南京町去海遊館,中间路线与费用也是受到周游券等影响,只能举例

例如:我回来坐的应该是 阪神本线 - 中央线(这里“急”的区分要注意)

但不论如何14:00一定要进海遊館了,如果还有时间,可以先在岸边看一眼聖瑪麗亞號帆船

19:00 左右从海遊館出来,前往まぐろ屋 天 吃饭(这里如果店不在了,可以选择隔壁的猪排饭,甚至赛百味,KFC)

20:00 前往天保山大摩天輪,理论上应该要更早一些?

22:00 从天保山大摩天輪沿港区第287号線步行450米到大阪港

从大阪港乘中央線(各站停車學研奈良登美丘)

大阪港 - 堺筋本町 约13分钟 后站内换乘堺筋線(各站停車天下茶屋)

堺筋本町 - 長堀橋 约1分钟 回到Vessel賓館 - 心齋橋

9.28 (土曜日)

中之島公園(190 JPY)

8:00 起床 9:00左右餐厅吃完早饭

从長堀橋出发,乘堺筋線(各站停車北千里)

長堀橋 - 北濱(大阪) 约3分钟

(这里可以在北濱-京阪本线,先兑京都觀光乘車券 9.30)

后向北步行,从堺筋/府道102号上岛

在中之岛东逛约1小时(很难去岛西,如果去需在中之岛上,難波橋乘京阪中之島線,向西有大江橋、渡邊橋、中之島(大阪))

大阪天滿宮

10:00 左右 从 中之島公園 芝生広場 找 ラジオ塔跡(石广播塔)方向,向北走天桥500米 约7分钟即达

于天滿宮逛1个半小时左右(一堆神社+結婚式場 可能逛不到)

从早上大阪城开始到天滿宮会连续走几个小时的路,需要注意中途休息

依自身情况,午饭是在天滿宮附近(広東名菜 紅茶(ほんちゃ) 没错,广东菜)解决还是撑到天神橋筋商店街

天神橋筋商店街(1000-2000 JPY)

11:30 从天滿天神繁昌亭离开大阪天滿宮,继续向北步行750米 约11分钟

到达天神橋筋商店街(但实际上走过去的路上应该开始就算天神橋筋商店街了,毕竟被称为日本第一长商店街,横跨了堺筋线三个地铁站)

12:00 开始边逛边吃,一路向北,从可乐饼(中村屋)开始吃起,吃鲷鱼烧(鸣门),吃章鱼小丸子(道乐Wanaka),还能在平价超市(玉出)买点喝的,能吃一个小时吗?

萬博紀念公園(680+230 JPY)

13:00 从玉出超市 天神橋店出发,步行160米至扇町(注意“急”)

乘堺筋線(準急行 京都河原町)

扇町 - 天神橋筋六丁目(此时变为阪急千里線 京都河原町,但“繼續搭乘相同交通工具”)- 淡路(此时变为阪急京都線 京都河原町,但“繼續搭乘相同交通工具”)- 南茨木 约20分钟

从南茨木站外换乘大阪單軌電車(各站停車大阪機場(單軌電車))

南茨木 - 萬博紀念公園 约6分钟

步行至马路对面即达,看了一下占地面积,如果是15:00才抵达,或时间不够(需约半天时间,17:00便截止),则需舍弃中之岛公园

于萬博紀念公園逛2-3小时(太阳塔、水车、鱼池、花田、游乐场)

梅田空中庭園(530+2000+1000-2000+240 JPY)

18:00 从太陽之塔对面正门行天桥至萬博紀念公園站(注意“急”)

乘大阪單軌電車(各站停車門真市)

萬博紀念公園(大阪)- 南茨木 约6分钟

从南茨木站外换乘阪急京都線(各站停車大阪梅田(阪急))

南茨木 - 十三車站 约20分钟

从十三車站站内换乘阪急神戶線(各站停車大阪梅田(阪急))

十三車站 - 中津(阪急) 约2分钟

由中津出站,向南沿梅田貨物駅西横線步行750米 约9分钟抵达空中庭園

但,事已至此,先吃饭吧

所以还是从中津出站,向南沿梅田貨物駅西横線步行750米 约10分钟抵达大阪燒名店 きじ

19:30/20:00 从大阪燒名店 きじ吃完,额,走91米就到空中庭園,大概可以玩到22:00,主要是夜景观光。话说有浴衣漫步体验,可以带回家的那种(完了,某一抹多又落空了)

22:00 先由梅田空中庭園 步行至梅田,途经北梅田通/大阪市道九条梅田線,约800米,12分钟

从梅田,乘御堂筋線各站停車中百舌鳥(大阪市營) 御堂筋線好像很拥挤,有显示“嚴重誤點”

梅田 - 心齋橋站,约6分钟,后往東走長堀通/国道308号/府道173号朝心斎橋筋前進400米,5分钟就回到Vessel賓館 - 心齋橋

9.29 (日曜日)

難波八阪神社(190+1000 JPY)

8:00左右起床 看是否有早餐吃 没有也没关系,办理退房手续checkout

9:00左右 步行至心齋橋站 乘御堂筋線(各站停車天王寺)

心齋橋站 - 難波站 约1分钟

记得先去老爺爺蛋糕店买个蛋糕,带去難波八阪神社边吃

然后步行至難波八阪神社,29日可能都需要拉行李箱,看看能不能在奈良寄存

11:00左右 准备动身前往奈良,去奈良也是和去神户一样,会遇到周游卷的问题,但大概1小时内能到达的

我走的是大和路线(JR)

奈良公園&東大寺&春日大社(680+5170+960 JPY)

12:00 抵达奈良 “近鐵奈良駅內有不少儲物櫃,方便旅客寄存行李” 不知道奈良站如何

存好东西 开吃 近鐵奈良步行150米前往すき焼きと牛まぶし ももしき(没预约上,可能要去茶屋吃)

13:30 前往奈良公园看鹿 然后抛个硬币看是先向北去東大寺 还是向南一路去春日大社

17:30 结束在奈良的旅程,该前往京都啦,去京都也是和去奈良一样,会遇到周游卷的问题,但大概1小时内能到达的(记得取行李!)

我走的是奈良线(JR) - 京阪本线

京都四條河原町R&B酒店(170 JPY)

18:30 左右到达京都 应该是在东福寺 换乘京阪本線(准急出町柳)

东福寺 - 祗園四條 约5分钟 然后过桥(四条大橋或団栗橋)步行约550米

到达京都四條河原町R&B酒店办理入住checkin

先斗町&祇園&八坂神社(1000-2000 JPY)

19:30 从 R&B 步行前往牛排丼 Red Rock 吃晚饭

20:30 沿先斗町散步,经四条大橋往祇園,看八坂神社夜景

(也看看要不要在三条兑京都觀光乘車券 第二天用)

22:00 返回 R&B

9.30 (月曜日)

鴨川三角洲&出町桝形商店街(230+? JPY)

7:30 起床吃早饭 8:30左右就可以出发了 从祗園四條乘京阪本線(各站停車出町柳)(注意“急”)

祗園四條 - 出町柳 约6分钟 踏石过河 鴨川算是圣地巡礼打卡了

9:00 沿出町桥步行至出町桝形商店街,听说有些小东西,可以尝试买买?其实也是巡礼的一部分,可以对照看看

伏見稻荷大社(280+2000-3000 JPY)

11:00 从出町柳出发 乘京阪本線(準急行淀屋橋)

出町柳 - 伏見稻荷 约14分钟 旁边就是炸牛排 京都勝牛 伏見稻荷店

12:00左右 吃完 即可观访伏見稻荷大社

京都动画工作室&宇治橋(?+200+190+1500+350+1000-2000 JPY)

伏見稻荷大社出口有一家花店 なかやまフローリスト 可以买一点后用

14:00 从稻荷車站出发,乘奈良線(各站停車奈良)

稻荷車站 - 六地藏(JR、京都市營地下鐵) 约8分钟

从六地藏沿府道128号步行400米即到达京都第一动画工作室遗址

14:30 可以选择继续步行前往第二工作室和本社 约18+6分钟

也可以从六地藏(京阪) 乘京阪宇治線(各站停車宇治(京阪))

六地藏(京阪) - 木幡(京阪) 约1分钟

15:30 可以继续从木幡駅 乘奈良線(各站停車奈良)

木幡駅 - 宇治駅 约5分钟

实际上想怎么坐怎么坐,因为两张券同时再次生效(JR、KH)

朝あがた通り/宇治川ライン/府道3号 步行约13分钟 抵达宇治日の出園

17:00 左右 过宇治橋至宇治(京阪) 乘京阪宇治線(各站停車中書島)

宇治(京阪) - 中書島 约14分钟 站内换乘京阪本線各站停車出町柳

中書島 - 三條(京都) 约20分钟 然后步行去豚ゴリラ 新京極六角店

18:00 吃猪扒饭(POP子 and PIPI美!)

19:00 吃完,步行回R&B(感觉晚上时间还很多,可以想想加点啥)

10.1 (火曜日)

清水寺&高台寺(230 JPY)

6:30 起床吃早饭 7:30左右步行前往清水寺 约30分钟

10:30 前往清水道 乘86 City Bus/206 City Bus

清水道 - 京都站前 约17分钟 换乘山阴本线(园部)

京都站 - 嵯峨岚山 约11分钟 后步行前往竹林小径

嵐山竹林小徑&嵯峨野観光鉄道(1960+2000-3000 JPY)

12:00 左右 经嵐山竹林小徑 往遊覽小火車嵐山去

乘观光铁道前往小火車龜岡車站 步行850米至鮨彦(或丸玉飯店)吃午饭

14:00 略微逛一下,就可以从小火車龜岡車站 乘观光铁路回嵯峨嵐山站

渡月桥&天龍寺(470240+4000-5000 JPY)

15:00 渡月桥&天龍寺逛就完了

18:00 前往岚山(阪急) 乘阪急岚山线(桂)

岚山(阪急) - 桂 后站内换乘阪急京都线(京都河原町)(注意“急”)

桂 - 京都河原町 共约35分钟 还能玩玩

19:30 步行即可到达燒肉放題(其实自助2小时,最好吃满,1号晚上可以去吃王记烧烤)

21:30 步行回到 R&B

10.2 (水曜日)

天橋立(230+5200 JPY)

6:30 起床(感觉是在京都起最早的一天,没有早餐的话可能需要前一天晚上去便利店备一些)

7:30 步行350米至河原町松原 乘205 City Bus/105 City Bus/4 City Bus/7 City Bus/五条通5 City Bus/松ヶ崎4 City Bus

河原町松原 - 京都車站前 约12分钟 再步行130米进京都車站

8:30 乘 JR 橋立

京都駅 - 天橋立駅 在这里我要说清楚,有更便宜的方式去天橋立,乘高速巴士,但是一我晕车,二也想乘火车补一下不去东京的火车旅途,所以赶 8:38 的 JR

10:40 到达天橋立駅 经大天橋步行3.2公里 约44分钟 过丹後天橋立大江山國定公園 到达江尻(バス)

伊根舟屋(200+2000-4000+200+4800+220+4000-5000 JPY)

12:00 从江尻(バス) 乘蒲入線

江尻(バス) - 伊根(バス) 约29分钟

13:00 在伊根选饭店吃饭(FUNAYA KAJIYA 神慈や或お食事処 兵四楼)

还可以继续往下逛去看看 BiS Dogg 到底有没有开业

16:00 从伊根(バス)出发 乘蒲入线(上宫津行)

伊根(バス) - 江尻(バス)约30分

16:30 从天橋立走去天桥立站

18:09 天橋立 - 二条 约两小时 换乘东西线(六地藏(JR、京都市营地铁))

二条(京都) - 三条京阪 约8分钟

去吃自助烤肉后步行回 R&B

10.3 (木曜日)

京都國際漫畫博物館&锦市场(1200+4000-5000 JPY)

8:30 起床 9:30 出发 步行经綾小路通和烏丸通/国道367号 2公里约30分钟

记得看看酒店能不能存行李

10:00 准时进京都國際漫畫博物館 看到13:00

13:00 步行往锦市场、京菜味のむら 錦店 吃饭

14:00 步行回一趟 R&B 取行李

關西國際機場(2190230+? JPY)

14:30 从河原町松原出发 乘4 City Bus/7 City Bus/五条/205 City Bus

河原町松原 - 京都站前 然后乘 JR HARUKA(关西机场 特急)

14:58 京都站 - 关西机场 共1小时30分左右

17:00 饿了看看有没有K记/M记,飞机上也有一餐,回国!

臨空城&电电城

从时间安排(必须要预留足够多的时间候机)来看,10.3下午去电电城买东西可能不太现实,可能真得考虑临空城带点东西回来……

但是啊,现在看最好是第一次去电电城时买点,不然真的没啥时间

归来小结

总花费、细节和感受,待记

win11系统第一次开机跳过联网的办法(3种方法)

win11系统第一次开机跳过联网的办法(3种方法)

本文转自jaray 并作补充

预装Win11家庭中文版由于微限制必须要联网激活,需要使用微软账户登入才可以继续开机过程,联网后系统会自动激活。

  新电脑,安装以后,会要求激活,我打电话问了厂家,居然告诉我,让我用新电脑连手机,使用手机的热点,去激活电脑。在没有网络的情况下,现在连电脑都无法激活,厂家这么说,我不知道是他们不愿意说,还是真的不知道,我是无法相信这种说法,我在网上搜了很多方法,带图的,结束“调出任务管理器找到 Network Connection Flow进程”,这种方法是不行的,根本没有这个进程。

  还有一种方法是:打开任务管理器,这个打开方法下面有,简单看完各个硬件参数,这个方法也扯了。

  由于很多厂家基本都是联网后就不符合无理由退货的条件了,所以我整理了以下的几种跳过联网的办法,可以参考。

一、win11初次开机跳过联网激活方法1

1、按下Shift+F10或者是Fn+Shift+F10快捷键调出命令提示符窗口;

2、输入taskmgr,并按下回车键;

3、接着就会出现任务管理器页面,我们点击“详细信息”;

4、找到“Network Connection Flow”进程或者是“网络连接流”进程,点击“结束任务”;

5、这样就可以跳过联网;

6、这种方法就是上面我提到过的方法,我这台电脑也不行。

二、win11初次开机跳过联网激活方法2

1、首次进入Windows11家庭版系统并进行设置,到联网界面,按下【Shift+F10】快捷键(无效可试下【FN+Shfit+F10】)

2、在出现的命令提示符页面输入OOBE\BYPASSNRO,按回车键,等待电脑重启完成

3、重启后,在联网界面会有“我没有Internet连接”选项,点击此选项即可跳过联网

三、通过修改注册表跳过联网界面3

1、按Shift键+F10键(不成功按Fn+Shift+F10);

2、弹出命令提示符窗口,输入regedit回;

3、然后在打开的注册表编辑器界面中,找到下方路径——计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE

4、接下来在注册表的右侧空白处鼠标右键,在弹出的右键菜单项中,新建一个DWORD(32位)值(D)。新建的值重命名为: BypassNRO,双击打开BypassNRO这个值,然后在编辑DWORD(32位)值窗口,将数值数据修改为【1】,再点击【确定】;

5、最后在cmd窗口再输入命令:logoff,回车;

6、可以跳过联网。

end.

sourcemap文件泄露漏洞

sourcemap文件泄露漏洞

本文转自小心灵呀 并作补充

最近进行渗透测试时,时常遇到xray扫出sourcemap文件,每次扫到都要百度,因此做个笔记。

漏洞原理

在日常测试时,经常会遇到以js.map为后缀的文件
这是jQuery中的一个新功能,支持Source Map
非常多Webpack打包的站点都会存在js.map文件.
通过sourcemap可还原前端代码找到API,间接性获取未授权访问漏洞

什么是Source map
简单说,Source map就是一个信息文件,里面储存着位置信息。转换后的代码的每一个位置,所对应的转换前的位置。
有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,这无疑给开发者带来了很大方便。

漏洞复现

使用xray扫到 dirscan/sourcemap/default 漏洞。

image

直接访问链接可下在sourcemap文件,利用该文件还原源代码需使用reverse-sourcemap工具。
先安装:nodejs,
下载地址:https://nodejs.org/zh-cn/download/
选择适合自己操作系统的版本:

image

双击下载后的文件,一路点击 next即可成功安装

image

安装完nodejs后,控制台输入:

1
npm -v

即可查看安装的版本。

image

然后安装 reverse-sourcemap

1
npm install --global reverse-sourcemap

安装完成(PS:我电脑中已经有reverse-sourcemap,所以大家如果为初次安装看到信息可能跟我不一样)。

image

安装完成后,将其加入环境变量

image

检查是否安装成功:

1
reverse-sourcemap -h

安装成功

image

还原map文件

1
reverse-sourcemap -v ****.js.map -o output

map文件会还原到 output文件

同时还可以通过浏览器,开发者模式-source模块查看前端源代码

image

漏洞修复

临时的解决方法就是删除代码目录下的.map文件;
永久的解决方法就是在build的时候禁用产生map文件的功能;
在scripts/build下的build.js 文件中添加如下配置:
process.env.GENERATE_SOURCEMAP = ‘false’;
重新build就不会再产生sourcemap文件了

参考资料

如何还原前端代码

SonarQube-破解

SonarQube-破解

本文转自ny0c 并作补充

新版SonarQube破解

软件版本: sonarqube-9.8.0.63668
Java版本: jdk11
Agent版本: 1.2

帖子上有人求新版破解,花了点时间搞定了通杀的,已经测试过8.9.8 LTS跟9.8.0最新版(笔者注:事实上10.x的版本也可以进行破解)

使用说明

1、把下列信息全部复制,然后base64加密后的内容就是license,注意要包括换行

1
2
3
4
5
6
7
8
9
10
11
Company=Unknown
Digest=NotRequired
Edition=Enterprise
EditionLabel=Enterprise
Expiration=2099-01-01
MaxLoc=9223372036854775806
Plugins=abap,cpp,plsql,security,sonarapex,swift,tsql,vbnet,cobol,pli,rpg,vb
Features=*
ServerId=*
Support=false
Type=ny0c

image

2、修改SonarQube启动参数
解压从官方下载压缩包,根据自身需求配置好数据库链接
然后修改sonarqube-版本号/conf/sonar.properties的内容
其中

1
#sonar.web.javaOpts=-Xmx1G -Xms128m -XX:+HeapDumpOnOutOfMemoryError

改成

1
sonar.web.javaOpts=-javaagent:/你的agent目录/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx1G -Xms128m -XX:+HeapDumpOnOutOfMemoryError

以及

1
#sonar.ce.javaOpts=-Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError

改成

1
sonar.ce.javaOpts=-javaagent:/你的agent目录/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError

3、启动sonarqube
根据官方文档设置好sonarqube后,直接sonar.sh console启动控制台模式,看到app[][o.s.a.SchedulerImpl] Process[web] is up后,sonarqube启动成功

4、设置license
浏览器打开 http://sonarqube-IP地址:sonarqube-端口/ 设置或者登录sonarqube,然后点击最顶上的Administration选项卡,然后点击下面的Configuration,选择License Manager,接着设置License即可

image

旧帖

SonarQube其实很早之前就被我刀了,一直没有机会放出来,理论上能干整个 8.9.x LTS,具体版本是enterprise.

说实在的,看雪真是好地方啊,今天burp破解秒审核通过,那这个我也发了把,具体思路不大记得了,反正也是挺痛苦的过程,等我有时间再补把.

原版 SonarQube Enterprise Edition 8.9.8 LTS下载地址

用法很简单,直接加个javaagent到sonarqube-xxxx/conf/sonar.properties里面,注意web跟ce两个地方都要加

License编码方式
请保留换行,然后整体base64即可

补个图把

image

image

老规矩,不混淆,不加密,有兴趣的自己拆来看.

上传的附件

SonarQubeAgent-1.1-SNAPSHOT.jar

SonarQubeAgent-1.2-SNAPSHOT.jar

SonarQubeAgent-1.2-src.zip

Silence-赫默

Silence-赫默

image

诶,我看到这个皮肤的时候,整个人脑内立刻就是下面这张表情包了:

image

因为是开服第一个五星,因为和过去某位很像,因为一起度过了艰难的岁月,因为内心目前仍有歉意,所以赫默确实是我很喜欢的角色……

所以我 Pixiv 上第一幅有关的明日方舟的画作才会是:一枚斑羽毛【A spotted feather】

image

19年啊,晃眼5年过去了,该忘掉的没忘掉,所幸不该忘掉的也没怎么忘掉。

现在看板干员换了一个又一个,但我也没法说我厨哪个,只觉得这个角色可爱,吃这个人设和故事,摆上去一段时间,但更多的感情也没有了,所以是个假二次元(没有一个季度换一次老婆真对不起呢)

赫默有塞雷娅、伊芙利特、白面鸮陪着,实话是羡慕的,感觉自己也不配代替或成为其中任何一个位置……

写到这里刷刷手机发现“生路”的PV发了,一眼二队长新皮肤(感觉不如返航)

image

灰产-如何破解请求验签(下)

灰产-如何破解请求验签(下)

image

写在前面

再来个前情提要:灰产-如何破解请求验签(上)

以下都是情节模拟,并非具体情况,请细加甄别

阿哈!Showmak……啊不,是新的 Sign 替换后不久就,两周左右就又被破解了呢——

“我们新的加签,可是从多个随机数池取值生成的 sign1,然后把sign1和多个参数混合在一起按时间戳不同取模排列生成的sign2,怎么可能……”

啊,虽然很想吐槽这反派一般被反击了感叹自己部署被打乱了的感觉,但是来不及为已经逝去的 sign2 感到悲伤了,接下来赶到战场的是……

是我这个苦力!

我打灰产?真的假的?要上吗?

image

总而言之

总而言之,在解释了旧 Sign 是怎么泄露的后,调查新 Sign 是怎么泄露的这个任务又又又落到我这里了= =,已经不想吐槽了

实现漏洞

“怎么实现的……额,实际上我们等于是接了一个生成库,你可以理解为类似SDK,里面有各种 Sign1 和 Sign2 的实现方式,什么移位啊取模啊都多久前的了,我都快忘了,你想看的话文档给你你可以看一下”

“有没有可能是这个实现的模块泄露了或者可以被调用啥的?”

“我觉得没有吧,感觉也有可能是 Hook 了,但就不知道是怎么弄的”

然后直到最后我除了在研发显示屏上看到了一眼实现文档,我再也没看到那实现方式一眼了

image

摸索开始了——

首先通过请求日志我发现,灰产用到的 sign1 有一批量重复的(说好的随机池随机取呢),但是生成的 sign2 是不重复的(sign1 只作为一个参数参与生成 sign2 的计算),我们并没有对 sign1 进行校验,所以导致这个 sign1 可以在请求中被替换,重复利用。

顺带一提的是,在其他应用里很早就出现这个情况了,不是我的话都还没发现……

image

定向Hook

sign1 的问题因为没有校验可以重复利用解决了,那 sign2 呢?

前端没有找到泄露 sign2 计算点,因为前端都可能没用新的 Sign;

应用端源码没看到 sign2 的计算方式,因为做了较好的混淆;

……

那选择就只有一个了!(折断拐杖)

对它使用 Hook 吧!

image

早在 MobSF移动安全测试框架|自动化静动态app分析框架 的使用中,我就接触了 Frida,why?因为一开始装不上,并且因为种种原因(MobSF 自带证书冲突等)执行动态分析的效果很差,虽然后来还是能试出来。

扯远了,回到现在,利用 Frida 对应用进行 Hook,我是在 Genymotion 上做的,当然,由于应用配置的关系,你可能需要先:

这里就要说了,为什么涉及到 Brida?

因为一开始是想用 Brida 直接 Hook 调用函数,传到 BurpSuite 直接修改请求,但是后来发现你根本不知道是哪个函数计算 sign2 ,别说改了,Hook 都不知道 Hook 谁,怎么办?

image

java.security.MessageDigest

还记得旧 Sign 最后的加密算法吗?SHA1-Hash

再看看新 Sign,尤其是 sign2 的样式,分明也是 SHA1!

嘛,灵光一现:不如利用 js 跟踪“java.security.MessageDigest”的调用,并输出加密入参与之后的值,js 参考:

image

入参值反解出来是一堆字节码,需要用 java 重新转一下回去:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class exchange {
public static void main(String[] args) {
byte[] b = { 108, ……, 102,
105, ……, 105,
111, ……, 107,
45, ……, 61,
50, ……, 52,
32, ……, 117,
115, ……, 118,
105, ……, 110,
118, ……, 73,
70, ……, 78,
74, ……, 85,
85, ……, 108,
107, ……, 107,
45, ……, 110,
61, ……, 48,
67, ……, 45,
116, ……, 112,
61, ……, 104,
73, ……, 57 };
String s = new String(b);
System.out.println(s);
}
}



Output:
……data={"userId":"……"}……sign1=GORNJPBOGXJXZQRRKYKYZNGZXZSYOUUSCMCM……timestamp=1714030269543……

sign1&timestamp

ok,入参也出来了,现在只剩一个问题:sign1 在入参中的位置。

其实到这里直接去遍历都可以,但是我还是采集了几份 sign1 在 sign2 生成位置与 timestamp 的关系进行比对,然后发现比对了个寂寞——差一位数的时间戳里 sign1 的插入位置可以相同的 = =:

image

所以不整了,收工!

image

写在后面

下篇也写完了,感觉好像也就这样,后续把加固啥的弄上议程吧,不然好像还有些硬编码问题也是头疼,但还要验证一下效果。

沉默,然后……事已至此,先吃(pao)饭(lu)吧

image

参考引用

灰产-如何破解请求验签(上)

MobSF移动安全测试框架|自动化静动态app分析框架

Genymotion_A11_libhoudini

How to install Xposed/EdXposed/LSPosed + Magisk with Genymotion Desktop?

brida从0配置

安卓逆向 - Frida Hook(抓包实践)

Frida java层自吐加密算法

灰产-如何破解请求验签(上)

灰产-如何破解请求验签(上)

image

前情提要

先来个前情提要:灰产-如何对APK修改后重签

在写那篇文章的我,是否会想到我竟然还有有关“灰产”的下文来写?而且就标题来说,还有分上下两篇!所以这4个月不到的时间我又经历了什么呢?

image

写在前面

以下都是情节模拟,并非具体情况,请细加甄别

让我们把时间拨回到年后。

年后回来一阵子,接到业务风控同学的反馈,我们有用户发现自己的账户被盗了,自己购买了不是自己的商品(不产生金额)并对这个商品统一匿名评价……

我第一反应卧槽哥们我们应用不是做了端校验,不同设备必须验证码登录,怎么连手机一起丢了才有后面能说漏洞导致账密泄漏的事?

image

后面通过网关日志、应用日志、接口日志等排查,发现这个用户的登录凭证(token)有从境外服务器请求服务的情况,可以基本确认是 token 的泄漏;

再和用户沟通以及进一步的深入排查,我们发现 token 的泄漏源于用户被钓鱼,这里细节不表;被社工得到的 token 会先从 ip 1 被收集并转发给 ip 2 进行购买请求与评论……

这里涉及到一个问题,我们的请求在各端做了验签,Sign 参数会根据不同端走不同的计算方式,想要更改 token 并发起购买请求,不重新计算 Sign是不可能通过校验的,只有两种可能:

  • 我们的 Sign 计算方式被破解
  • 我们的 Sign 计算方式可被任意调用

总而言之

总而言之,这个任务又落到我这里了= =

会议讨论对齐的时候,研发一致认为是在 H5 端的 Sign 计算方式太简单了,如何计算已经被破解,应该换上现在端上更安全的 Sign 计算就可以了!

直接破解一个计算方法理论上是不太容易的,我更在意的是是否是哪个地方泄漏了 Sign 的计算方法,或者在什么地方的计算代码可以被调用,直接入参入值然后得到结果。

但这里就要提到另一个事情了,研发不告诉你!

他们只表述这个好像比较简单就能破,但问他们怎么破的,不知道;问他们在哪里可能泄漏了,不知道:

“大概是从前端 JS 泄漏的?你看我们这里都做了混淆了,你看是不是就是这个位置,sign 关键词都命中了……”“可是为啥我调试/下断点没反应啊?”

image

后来嘛,在把钓鱼的口子堵了一下后,换上“更安全”的 Sign 计算方式后,喜闻乐见的钓鱼的口子也被绕过了,“更安全”的 Sign 计算也被破解了……

然后呢?

遭殃的还是我好吧,本来他们都认为可行的解决办法没用的时候,我就不得不花时间和精力来看看不在我 OKR 上的问题了

image

泄漏发现

算研发很配合安全工作,虽然告诉了我一个错误的泄漏位置,但起码提醒了我可能是 JS 就已经泄露了,没必要一来就去逆向找源码。

开始的思路还是去利用前端给到的 JS 复用:Burp Suite作为代理,复用目标站点的js代码处理指定的内容

后来发现 JSFlash 必须要能够指定调用代码函数才行,前端 JS 混淆了,指向不出来,直接分析不了

然后我就在前端登录页 Source - js 找到了 Sign 计算点,并且下断点步进调试看到了所有 Sign 的计算入参:

image

image

它端验证

在前端 JS 调试的过程中能看到有一个 secret 参数是不会暴露在 request 里的,其他端的如何获得?

Jadx 逆向反编译一下应用端,以 SIGN 为关键词,在源代码中发现了硬编码在其他端使用的 secret,以及使用的 Sign 最后加签算法:

image

image

写在后面

上篇就到这里,写的好像很简单,解过程也没遇到什么麻烦,但是还得说和大伙配合的还是不好,我还是认为不管是锻炼或者检验个人能力也好,工作任务忙不想接手深入这个事情也好,如果是以把事情完成的结论来说,相互配合是很重要的。

以旧 Sign 为例,大家说的好像每个人都知道这个是怎么生成的,但就是没人和你说,告诉的还是错误的位置,即使真的可能知道是怎么生成的不知道是在哪里泄露的,那信息汇通还是更重要的。研发完全可以告诉你“我猜是在前端 JS 泄漏的,位置是在这里,他的调用是这样的……”给你演示出来,如果真的在前端直接 Debug 下断点走一遍,就会知道一开始的位置告诉错了,并且一下就把泄漏点找出来了。

不会浪费双方的时间的。

image

参考引用

灰产-如何对APK修改后重签

Burp Suite作为代理,复用目标站点的js代码处理指定的内容

安卓逆向 - Frida Hook(抓包实践)

安卓逆向 - 基础入门教程

本文转自小馒头yy 并作补充

一、引言

上篇文章:安卓逆向 - 基础入门教程_小馒头yy的博客-CSDN博客 介绍了Frida的安装、基本使用,今天我们来看看Frida常用Hook和基于Frida抓包实践。

二、Frida常用 Hook脚本

1、hook java.net.URL

1
2
3
4
5
6
7
8
function hook1() {
var URL = Java.use('java.net.URL');
URL.$init.overload('java.lang.String').implementation = function (a) {
console.log('加密前:' + a)
showStacks()
this.$init(a)
}
}

2、hook okhttp3 HttpUrl

1
2
3
4
5
6
7
8
9
10
function hookOkhttp3() {
var Builder = Java.use('okhttp3.Request$Builder');
Builder.url.overload('okhttp3.HttpUrl').implementation = function (a) {
console.log('a: ' + a)
var res = this.url(a);
showStacks()
console.log("res: " + res)
return res;
}
}

3、hook okhttp3 addHeader

1
2
3
4
5
6
7
8
9
10
11
function hook() {
var Builder = Java.use("okhttp3.Request$Builder");
Builder["addHeader"].implementation = function (str, str2) {
console.log("key: " + str)
console.log("val: " + str2)
showStacks()
var result = this["addHeader"](str, str2);
console.log("result: " + result);
return result;
};
}

4、打印堆栈

1
2
3
4
5
function showStacks() {
Java.perform(function () {
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));
});
}

5、hook Base64

1
2
3
4
5
6
7
8
9
function hookBase() {
// Base64
var Base64Class = Java.use("android.util.Base64");
Base64Class.encodeToString.overload("[B", "int").implementation = function (a, b) {
var rc = this.encodeToString(a, b);
console.log(">>> Base64 " + rc);
return rc;
}
}

6、hook HashMap

1
2
3
4
5
6
7
8
function hookMap() {
var Build = Java.use("java.util.HashMap");
Build["put"].implementation = function (key, val) {
console.log("key : " + key)
console.log("val : " + val)
return this.put(key, val)
}
}

三、某麦网抓包实践

本篇以某麦网帖子详情接口,演示如何基于Frida hook抓包

1、安装某麦网8...apk

2、搭建Frida hook 环境,注入 hook java.net.URL脚本

3、点进帖子详情打印出如下堆栈,我们可以根据打印出的信息,跟栈分析该接口的请求头。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
https://acs.m.taobao.com/gw/mtop.damai.wireless.discovery.detail.get/1.4/?source=10101&version=6000168&type=originaljson&data=%7B%22contentId%22%3A%2211088650%22%2C%22appType%22%3A%221%22%2C%22source%22%3A%2210101%22%2C%22osType%22%3A%222%22%2C%22pageSize%22%3A%2230%22%2C%22pageIndex%22%3A%221%22%2C%22version%22%3A%226000168%22%2C%22channel_from%22%3A%22damai_market%22%7D&appType=1&osType=2&channel_from=damai_market
java.lang.Exception
at java.net.URL.<init>(Native Method)
at tb.yy0.m(Taobao:1)
at anet.channel.request.a.p(Taobao:2)
at anet.channel.session.TnetSpdySession.w(Taobao:18)
at anetwork.channel.unified.NetworkTask.sendRequest(Taobao:6)
at anetwork.channel.unified.NetworkTask.run(Taobao:44)
at anetwork.channel.unified.UnifiedRequestTask$a.proceed(Taobao:15)
at com.taobao.orange.sync.NetworkInterceptor.intercept(Taobao:30)
at anetwork.channel.unified.UnifiedRequestTask$a.proceed(Taobao:7)
at anetwork.channel.unified.UnifiedRequestTask$3.run(Taobao:2)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

4、使用Jadx打开某麦网apk

从at tb.yy0.m(Taobao:1)跟栈分析

image

根据调用栈往上走,定位到如下位置,注意这行代码:

1
ALog.f("awcn.TnetSpdySession", "", aVar.n(), "request headers", aVar.g());

image

代码注释很清楚了 request headers,我们跟进 hook aVar.g() 这个方法

1
2
3
public Map<String, String> g() {
return Collections.unmodifiableMap(this.f);
}

hook之,对象输出可以使用 JSONObject转一下

1
var JSONObject = Java.use("com.alibaba.fastjson.JSONObject");
1
2
3
4
5
6
7
8
9
function hook6() {
var JSONObject = Java.use("com.alibaba.fastjson.JSONObject");
var a = Java.use("anet.channel.request.a");
a["g"].implementation = function () {
var result = this["g"]();
console.log("result : " + JSONObject.toJSON(result).toString());
return result;
};
}

打印出如下内容:

image

请求 URL、 请求方法这边都写得很清楚啦。

image

收工!

安卓逆向 - 基础入门教程

安卓逆向 - 基础入门教程

本文转自小馒头yy 并作补充

一、引言

1、我们在采集app数据时,有些字段是加密的,如某麦网x-mini-wua x-sgext x-sign x-umt x-utdid等参数,这时候我们需要去分析加密字段的生成。本篇将以采集的角度讲解入门安卓逆向需要掌握的技能、工具。

2、安卓(Android)是一种基于Linux内核操作系统,架构图(了解即可)

image

3、安卓应用程序使用JAVA语言编写(重要),作为一名安卓逆向人员我们必须掌握Java语言基础(基本语法、类、接口、面向对象、网络类库、加密解密等等)

4、安卓逆向是对已经打包好的APP进行反编译,分析源码了解应用逻辑的一门技术,这一部分我们需要学习静态分析,动态分析。各种反编译工具(推荐 jadx),Frida Hook。

二、静态分析,学习jadx反编译

1、安装jadx,github地址: Releases · skylot/jadx · GitHub,下载 jadx-1.4.7.zip 解压即可。

image

2、调整jadx最大内存,打开bin目录下的 jadx-gui.bat文件,搜索DEFAULT_JVM_OPTS。

将 -XX:MaxRAMPercentage=70.0 修改成 -Xmx16g

image

3、jadx使用,打开apk,jadx会自动反编译apk

image

全局搜索:点击左上角的导航 - 文本搜索,输入关键字,并且下方可以筛选检索的位置

image

根据关键字定位到关键代码后,我们就可以进行分析加密参数的生成啦。

三、动态分析,Frida 初使用

1、安装 adb (Android Debug Bridge),通过命令行使用adb,对安卓设备进行操作

2、下载模拟器,我使用的逍遥模拟器 (有Root好的真机更棒)

模拟器启动后,在命令行依次执行命令:

1
2
3
4
adb forward tcp:27043 tcp:27043
adb forward tcp:27042 tcp:27042
adb connect 127.0.0.1:21503
adb devices

再执行 adb shell,即可进入模拟器, #字符代表已 Root

image

3、安装Frida

本地直接使用 pip install frida 命令安装 (需有Python环境)

模拟器(手机)端下载对应的Frida-server: Releases · frida/frida · GitHub

低版本安卓推荐下载:12.8.13,高版本安卓直接下载最新版

模拟器是 x86架构,真机是 arm架构,请下载对应的 frida-server

4、开启Hook,动态分析应用运行时数据

  • 将frida-server传到手机 /data/local/tmp 目录,转到本地frida-server存放的目录,依次执行以下命令
1
2
3
4
5
adb push frida-server-12.8.13-android-x86 /data/local/tmp
adb shell
cd /data/local/tmp
chmod 777 frida-server-12.8.13-android-x86
./frida-server-12.8.13-android-x86
  • 编写 hook脚本,使用js方式启动,本例为 hook URL的构造方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function hook1(){
var URL = Java.use('java.net.URL');
URL.$init.overload('java.lang.String').implementation= function(a){
console.log('加密前:'+a)
console.log(' ')
this.$init(a)
}
}

function main(){
Java.perform(function(){
hook();
})
}


setImmediate(main);
  • 开始 hook,注意高版本 frida不需要带 –no-pause
1
frida -U -l dm_hook.js -f cn.damai --no-pause

其中 dm_hook.js是 hook脚本的文件名,cn.damai是apk的包名。

滑动应用,正常打印出 url信息。

Burpsuite插件-Brida

Burpsuite插件-Brida

本文转自sam.li 并作补充

通过一道CTF题目来认识一下Frida
objection
前面两篇通过对Frida的了解,以及利用objection来分析,这篇来了解一下分析后实际利用,以及通过实现插件自动化的方式来利用。

Brida介绍

https://github.com/federicodotta/Brida

Brida components

image

官方使用文档翻译

时间记录,20230725;

测试版本:0.5

虽然说官方文档是最新的,但是使用文档的截图依旧跟新版本的插件不一致,然后能够查到的资料也是比较久的内容,不过大体功能是差不多,但是还是自己操作一遍后记录一下相关问题;

这里只记录自己测试的环境,其他环境参考官方文档;

Android

  1. 安装frida和其server,并启动具体可以参考通过一道CTF题目来认识一下Frida
  2. 配置brida

在配置之前先简单了解一下brida的UI及其功能;

image

1 主面板

这里包含所有brida工具和配置

  1. Configurations
  2. JS Editor
  3. Hooks and functions
  4. Graphical analysis
  5. Graphical hooks
  6. Custom plugins
  7. Generate stubs
  8. Debug export

2 brida按钮面板

Brida按钮面板由三个不同的部分组成:

  • 顶部(前两行)是 Pyro4 服务器的状态(启动/停止)和应用程序的状态(hook状态)
  • (在两条黄线上方的按钮)在中间有一组固定在Brida所有选项卡上的按钮。这些按钮用于执行常规任务,如启动/停止 Pyro4 服务器、生成/附加/停止/分离应用程序(使用 frida-compile 编译)、重新加载 JS 文件、编译重新加载JS、分离所有hook、清除log等。
  • (黄线下)底部有一组按钮,取决于特定的Brida子选项卡

3 brida控制台

log输出

brida工具介绍

Configurations

配置界面

从上往下依次是

  1. Pyro服务状态
  2. 应用状态
  3. 是否使用虚拟的python环境
  4. python可以执行文件的路径
  5. Pyro服务地址(默认)
  6. Pyro端口(默认)
  7. frida-complile可以执行文件的路径
  8. 是否使用旧版本的frida-complile,尽量使用10以下的版本,一开始用默认版本会出现问题,hook上了,但是总有奇怪的报错
  9. 包含所有Brida JS文件的文件夹,第一次需要先生成一下默认的JS文件
  10. 需要hook的应用名/PID,如果为应用名,则在连接的时候是点按钮面板的Spawn application,如果为PID,则Attach;
  11. Frida连接方式
  12. 如果配置是远程连接frida,需要配置对应的地址和端口;

image

JS Editor

image

集成到Burp Suite中的JS编辑器,以便能够编辑Brida JS文件并直接从Burp Suite添加自定义hook和导出函数。编辑器具有JS语法突出显示。

Hooks and functions

image

此选项卡包括许多默认hooks和方法,可以通过按钮启用/执行。这些Frida脚本包括最新的Android和iOS平台的hook能力,以绕过和检查安全功能。

Graphical analysis

image

Graphical analysis

这里功能类似于objection的能力集成进来:

1
2
3
4
5
6
7
8
load tree = android hooking list classes //展示所有class 

搜索 = android hooking search methods [search_name] //在内存中所有已加载的方法中搜索包含特定关键词的方法
//但是这里Android的用起来会导致应用闪退,官方提了这个,只有iOS支持;

双击对应的class = android hooking watch class com.xxx.xxx //hook指定类, 会打印该类下的所以调用
右键Inspect = android hooking watch class_method com.xxx.xxx.methodName --dump-args --dump-backtrace --dump-return //hook指定类, 会打印该类下的所以调用
右键change return vule = android hooking set return_value com.xxx.xxx.methodName false //设置返回值

实际使用

参考:通过一道CTF题目来认识一下Frida

对函数进行打印,然后替换返回值,但是这里官方提供的返回值没有byte

image

Graphical hooks

image

管理之前hook的所有内容;

Custom plugins

image

强大的功能;

可以理解成自定义生成burpsuite插件,有四种可自定义插件类型;

  • IHttpListener:能让所有请求,通过正则匹配去替换/修改指定的内容,并让这个匹配到的内容通过frida构造的hook脚本处理(加解密、重新生成sign等)
  • IMessageEditorTab:将自定义选项卡添加到Burp Suite请求/响应窗格,以便能够使用Frida导出的函数解密/解码/处理请求/响应(或其中的一部分)(然后加密/编码/处理修改并替换原始请求/响应,如果有)
  • IContextMenu:将自定义上下文菜单选项添加到Burp Suite的右键菜单中,用于在请求和响应(或其中的一部分)上调用Frida导出的函数
  • JButton:添加调用/启用 Frida 导出函数的按钮

Generate stubs

image

如果内部自定义插件引擎无法解决复杂情况,则可以从外部Burp Suite插件使用Brida引擎。此选项卡生成 Java 和 Python 存根,可以复制并粘贴到外部插件中,以便允许 Burp Suite 和 Frida 使用 Brida 进行通信。

Debug export

image

此选项卡可用于在 Brida 插件中使用 Frida 导出的函数之前对其进行调试。为了使用 Brida 自定义插件(或使用 Brida 的外部插件),有必要将 Frida 代码放入一些由插件调用的 Frida 导出函数中。在此选项卡中,可以直接调用 Frida 导出,以便轻松调试。

使用问题记录

Windows环境

Spawn/Attach application时报错:entrypoint must be inside the project root
【移动安全】Frida + Burp -> Brida | APP加解密 | CN-SEC 中文网

把Frida的js文件放到burpsuite应用的目录下;

在Debug export中Run export是报错[frida.core.RPCException] unable to find method ‘test’
排查了很久,只找到了frida-compile版本过高这种情况,只能测试一下低版本是否会有问题,用npm在burpsuite应用的目录下执行npm install frida-compile@9.5.2,然后将安装的目录配置到frida-compile path中就能解决;

使用了低版本的frida-compile后报错java.io.IOException: Cannot run program

1
2
"C:\AAAA\agent\BurpSuiteCommunity\node_modules\.bin\frida-compile": 
CreateProcess error=193, %1 不是有效的 Win32 应用程序。

一开始配置没有带.cmd

image

image

image

UnicodeEncodeError: ‘gbk’ codec can’t encode

1
character '\u03f1' in position 49: illegal multibyte sequence**

刚好遇到一个反编译后用中文混淆的,这里用objection和python执行相关处理的时候就会报编码错误,在对应路径相关代码输出处加上utf-8编码输出就能解决;然后objection需要修改后重新编译;

image

源码解析

java调用python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# -*- coding: utf-8 -*-
import frida
import codecs
import Pyro4
import sys

#reload(sys)
#sys.setdefaultencoding('utf-8')

class Unbuffered(object):
def __init__(self, stream):
self.stream = stream
def write(self, data):
self.stream.write(data)
self.stream.flush()
def writelines(self, datas):
self.stream.writelines(datas)
self.stream.flush()
def __getattr__(self, attr):
return getattr(self.stream, attr)

@Pyro4.expose
class BridaServicePyro:
def __init__(self, daemon):
self.daemon = daemon

def attach_application(self,pid,frida_script,device,host_port_device_id):

self.frida_script = frida_script

if pid.isnumeric():
self.pid = int(pid)
else:
self.pid = pid

if device == 'remote':
self.device = frida.get_remote_device()
elif device == 'usb':
self.device = frida.get_usb_device()
elif device == 'local':
self.device = frida.get_local_device()
elif device == 'device':
self.device = frida.get_device(host_port_device_id)
else:
self.device = frida.get_device_manager().add_remote_device(host_port_device_id)

self.session = self.device.attach(self.pid)

with codecs.open(self.frida_script, 'r', 'utf-8') as f:
source = f.read()

self.script = self.session.create_script(source)
self.script.load()

return

def spawn_application(self,application_id,frida_script,device,host_port_device_id):

self.application_id = application_id
self.frida_script = frida_script

if device == 'remote':
self.device = frida.get_remote_device()
elif device == 'usb':
self.device = frida.get_usb_device()
elif device == 'local':
self.device = frida.get_local_device()
elif device == 'device':
self.device = frida.get_device(host_port_device_id)
else:
self.device = frida.get_device_manager().add_remote_device(host_port_device_id)

self.pid = self.device.spawn([self.application_id])

self.session = self.device.attach(self.pid)

with codecs.open(self.frida_script, 'r', 'utf-8') as f:
source = f.read()

self.script = self.session.create_script(source)
self.script.load()

return

def resume_application(self):

self.device.resume(self.pid)

return

def reload_script(self):

with codecs.open(self.frida_script, 'r', 'utf-8') as f:
source = f.read()

self.script = self.session.create_script(source)
self.script.load()

return

def disconnect_application(self):

self.device.kill(self.pid)
return

def detach_application(self):

self.session.detach()
return

def callexportfunction(self, methodName, args):
method_to_call = getattr(self.script.exports, methodName)

# Take the Java list passed as argument and create a new variable list of argument
# (necessary for bridge Python - Java, I think)
s = []
for i in args:
s.append(i)

return_value = method_to_call(*s)
return return_value

@Pyro4.oneway
def shutdown(self):
print('shutting down...')
self.daemon.shutdown()

# Disable python buffering (cause issues when communicating with Java...)
sys.stdout = Unbuffered(sys.stdout)
sys.stderr = Unbuffered(sys.stderr)

host = sys.argv[1]
port = int(sys.argv[2])
daemon = Pyro4.Daemon(host=host,port=port)

#daemon = Pyro4.Daemon(host='127.0.0.1',port=9999)
bs = BridaServicePyro(daemon)
uri = daemon.register(bs,objectId='BridaServicePyro')

print("Ready.")
daemon.requestLoop()