{"id":3396,"date":"2025-04-28T08:17:05","date_gmt":"2025-04-27T23:17:05","guid":{"rendered":"https:\/\/h4ck.kr\/?p=3396"},"modified":"2025-04-28T08:17:07","modified_gmt":"2025-04-27T23:17:07","slug":"%ed%95%b5%ed%85%8c%ec%98%a8-2025-bridge","status":"publish","type":"post","link":"https:\/\/h4ck.kr\/?p=3396","title":{"rendered":"[\ud575\ud14c\uc628 2025] bridge"},"content":{"rendered":"\n<p>libbridge_lib.so \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0b4\ud3b4\ubcf4\uba74 \uc544\ub798\uc640 \uac19\uc774 2\uac00\uc9c0 \ud568\uc218\uac00 \uc874\uc7ac\ud55c\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java_com_hacktheon_bridge_BridgeLib_encode<\/li>\n\n\n\n<li>Java_com_hacktheon_bridge_BridgeLib_decode<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"209\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-62.png\" alt=\"\" class=\"wp-image-3397\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-62.png 722w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-62-300x87.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/figure>\n\n\n\n<p>Android Studio\uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 \uc0c8 \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Phone and Tablet\uc5d0\uc11c Native C++ \uc120\ud0dd<\/li>\n\n\n\n<li>Package Name = com.hacktheon.bridge, Language = JAVA\ub85c \uc9c0\uc815.<\/li>\n\n\n\n<li>Android Studio\uc5d0\uc11c java\/com\/hacktheon\/bridge \uacbd\ub85c\uc5d0 BridgeLib.java \uc790\ubc14 \ud074\ub798\uc2a4 \ud30c\uc77c \uc0dd\uc131.<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package com.hacktheon.bridge;\n\npublic class BridgeLib {\n    public native String decode(String input);\n    public native String encode(String input);\n\n    static {\n        System.loadLibrary(\"bridge_lib\");\n    }\n}<\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\ud30c\uc77c \ud0d0\uc0c9\uae30\uc5d0\uc11c MyApplication2\/app\/src\/main \uacbd\ub85c\uc5d0 jniLibs \ub514\ub809\ud1a0\ub9ac \uc0dd\uc131. <br>apk \uc555\ucd95\ud480\uc5b4\uc11c lib \ud3f4\ub354\uc5d0 \uc788\ub294 4\uac1c \ud3f4\ub354 \ubcf5\ubd99.<\/li>\n\n\n\n<li>MainActivity.java \ucf54\ub4dc \uc218\uc815: \uc554\ud638\ubb38\uacfc \ud568\uaed8decode \uba54\uc18c\ub4dc \ud638\ucd9c\ud558\uba74 \ub05d.<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package com.hacktheon.bridge;\n\nimport androidx.appcompat.app.AppCompatActivity;\n\nimport android.os.Bundle;\nimport android.widget.TextView;\n\nimport com.hacktheon.bridge.databinding.ActivityMainBinding;\n\npublic class MainActivity extends AppCompatActivity {\n\n    \/\/ Used to load the 'bridge' library on application startup.\n    static {\n        System.loadLibrary(\"bridge\");\n    }\n\n    private ActivityMainBinding binding;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n\n        binding = ActivityMainBinding.inflate(getLayoutInflater());\n        setContentView(binding.getRoot());\n\n        \/\/ Example of a call to a native method\n        TextView tv = binding.sampleText;\n\n        BridgeLib bridgeLib = new BridgeLib();\n        String encodedText = \"4658hg76&lt;h85eed73ihghidi8ehf&lt;78;\";\n\n        \/\/ \ub514\ucf54\ub529 \uba54\uc11c\ub4dc \ud638\ucd9c\n        String decodedText = bridgeLib.decode(encodedText);\n\n        tv.setText(decodedText);\n    }\n\n    \/**\n     * A native method that is implemented by the 'bridge' native library,\n     * which is packaged with this application.\n     *\/\n    public native String stringFromJNI();\n}<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-461x1024.png\" alt=\"\" class=\"wp-image-3398\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-461x1024.png 461w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-135x300.png 135w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-768x1707.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-691x1536.png 691w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63-922x2048.png 922w, https:\/\/h4ck.kr\/wp-content\/uploads\/2025\/04\/image-63.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>libbridge_lib.so \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0b4\ud3b4\ubcf4\uba74 \uc544\ub798\uc640 \uac19\uc774 2\uac00\uc9c0 \ud568\uc218\uac00 \uc874\uc7ac\ud55c\ub2e4. Android Studio\uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 \uc0c8 \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[19],"tags":[17,24],"class_list":["post-3396","post","type-post","status-publish","format-standard","hentry","category-ctf-private","tag-android","tag-reversing"],"_links":{"self":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/3396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3396"}],"version-history":[{"count":1,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/3396\/revisions"}],"predecessor-version":[{"id":3399,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/3396\/revisions\/3399"}],"wp:attachment":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}