Skip to main content
Glama
il-il1

APK Security Guard MCP Suite

by il-il1
McpPlugin.class28.2 kB
����=�)com/mobilehackinglab/jadxplugin/McpPluginjava/lang/Objectjadx/api/plugins/JadxPlugin PLUGIN_IDLjava/lang/String; ConstantValue jadx-mcp serverSocketLjava/net/ServerSocket;executor&Ljava/util/concurrent/ExecutorService;context$Ljadx/api/plugins/JadxPluginContext; pluginOptions2Lcom/mobilehackinglab/jadxplugin/McpPluginOptions;runningZ<init>()VCode    LineNumberTableLocalVariableTablethis+Lcom/mobilehackinglab/jadxplugin/McpPlugin;init'(Ljadx/api/plugins/JadxPluginContext;)V $ &0com/mobilehackinglab/jadxplugin/McpPluginOptions % )  +-,"jadx/api/plugins/JadxPluginContext ./registerOptions/(Ljadx/api/plugins/options/JadxPluginOptions;)V1java/lang/Thread3 45runA(Lcom/mobilehackinglab/jadxplugin/McpPlugin;)Ljava/lang/Runnable; 07 8(Ljava/lang/Runnable;)V 0: ;startsafePluginStartup > ?@waitForJadxLoad()Z BDCjava/lang/System EFerrLjava/io/PrintStream;H6[MCP] Jadx initialization failed. Not starting server. JLKjava/io/PrintStream MNprintln(Ljava/lang/String;)V %P QRgetHttpInterface()Ljava/lang/String; T UVparseHttpInterface"(Ljava/lang/String;)Ljava/net/URL; X YZ startServer(Ljava/net/URL;)V B\ ]Fout _a` java/net/URL bR getProtocol _d eRgetHost _g higetPort()Ik lmmakeConcatWithConstants9(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; oqpjava/lang/Exception rR getMessaget lu&(Ljava/lang/String;)Ljava/lang/String;wjava/io/IOExceptiony"java/lang/IllegalArgumentException httpInterfaceLjava/net/URL;eLjava/lang/Exception; StackMapTable � �@isDecompilerValid +� �� getDecompiler()Ljadx/api/JadxDecompiler; ���jadx/api/JadxDecompiler ��getClassesWithInners()Ljava/util/List; ���java/util/List �isize� l�(I)Ljava/lang/String;�3[MCP] Waiting for Jadx to finish loading classes...� 0� ��sleep(J)V�7[MCP] Jadx failed to load classes within expected time.�java/lang/InterruptedExceptionretriesIcount getPluginInfo#()Ljadx/api/plugins/JadxPluginInfo;�jadx/api/plugins/JadxPluginInfo�JADX MCP Plugin�Exposes Jadx info over HTTP�3https://github.com/mobilehackinglab/jadx-mcp-plugin�1.0.0 �� �](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vdestroy � ���java/net/ServerSocket �@isClosed �� �close �  ���$java/util/concurrent/ExecutorService �shutdown Exceptions ���java/net/InetAddress �� getByName*(Ljava/lang/String;)Ljava/net/InetAddress; �� �(IILjava/net/InetAddress;)V ���java/util/concurrent/Executors ��newFixedThreadPool)(I)Ljava/util/concurrent/ExecutorService;3hostportbindAddrLjava/net/InetAddress;handleConnection(Ljava/net/Socket;)V�java/io/BufferedReader�java/io/InputStreamReader ���java/net/Socket ��getInputStream()Ljava/io/InputStream; ���!java/nio/charset/StandardCharsets ��UTF_8Ljava/nio/charset/Charset; �� �2(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V �� �(Ljava/io/Reader;)V �� ��getOutputStream()Ljava/io/OutputStream; �� �RreadLine ���java/io/OutputStream �� ��� java/lang/String split'(Ljava/lang/String;)[Ljava/lang/String;  R toLowerCase content-length:     startsWith(Ljava/lang/String;)Z  ilength  � substring  Rtrim java/lang/Integer parseInt(Ljava/lang/String;)I  @isEmpty �! "#read([C)I % &([CII)V(/invoke * +,equals(Ljava/lang/Object;)Z.POST 0 1 equalsIgnoreCase 3 4uprocessInvokeRequest6{8org/json/JSONObject 7: N 7=result 7? @Aput;(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;CerrortF/tools H IR getToolsJsonK Not found 7M N�toString P QRgetBytes(Ljava/nio/charset/Charset;)[BTjava/io/PrintWriter SV W(Ljava/io/OutputStream;Z)VYZHTTP/1.1 200 OK Content-Type: application/json Content-Length: %d Connection: close [ \]valueOf(I)Ljava/lang/Integer; S_ `aprintf<(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter; Sc dflush �f ghwrite([B)V �c kmljava/lang/Throwable no addSuppressed(Ljava/lang/Throwable;)VtsocketLjava/net/Socket;inLjava/io/BufferedReader; outStreamLjava/io/OutputStream; requestLinemethodpath contentLengthheaderbuffer[C bytesReadbody responseJsonLorg/json/JSONObject; respBytes[BLjava/io/PrintWriter;}�Y{ "tools": [ { "name": "get_class_source", "description": "Returns the decompiled source of a class.", "parameters": { "class_name": "string" } }, { "name": "search_method_by_name", "description": "Search methods by name.", "parameters": { "method_name": "string" } }, { "name": "search_class_by_name", "description": "Search class names containing a keyword.", "parameters": { "query": "string" } }, { "name": "list_all_classes", "description": "Returns a list of all class names.", "parameters": { "offset": "int", "limit": "int" } }, { "name": "get_methods_of_class", "description": "Returns all method names of a class.", "parameters": { "class_name": "string" } }, { "name": "get_fields_of_class", "description": "Returns all field names of a class.", "parameters": { "class_name": "string" } }, { "name": "get_method_code", "description": "Returns the code for a specific method.", "parameters": { "class_name": "string", "method_name": "string" } }, { "name": "get_apk_components", "description": "获取AndroidManifest.xml中声明的所有四大组件及其属性", "parameters": {} }, { "name": "get_apk_info", "description": "获取APK基本信息", "parameters": {} }, { "name": "get_intent_filters", "description": "获取所有组件的intent-filter", "parameters": {} }, { "name": "get_exported_components", "description": "获取所有exported=true或隐式导出的组件", "parameters": {} }, { "name": "list_broadcast_receivers", "description": "获取所有BroadcastReceiver及其intent-filter", "parameters": {} }, { "name": "get_declared_permissions", "description": "获取Manifest中声明的所有权限", "parameters": {} }, { "name": "get_defined_permissions", "description": "获取Manifest中自定义的权限", "parameters": {} }, { "name": "get_application_attributes", "description": "获取<application>标签的所有属性", "parameters": {} }, { "name": "get_all_meta_data", "description": "获取Manifest及组件下所有meta-data信息", "parameters": {} } ] } �org/json/JSONException�tool 7� �u getString� parameters 7� �� optJSONObject)(Ljava/lang/String;)Lorg/json/JSONObject; � �ihashCode�get_exported_components�get_apk_components� get_apk_info�get_all_meta_data�get_declared_permissions�get_application_attributes�get_method_code�search_class_by_name�get_fields_of_class�get_class_source�get_methods_of_class�list_broadcast_receivers�get_defined_permissions�list_all_classes�get_intent_filters�search_method_by_name � ��handleGetClassSource)(Lorg/json/JSONObject;)Ljava/lang/String; � ��handleSearchMethodByName � ��handleSearchClassByName � ��handleListAllClasses � ��handleGetMethodsOfClass � ��handleGetFieldsOfClass � ��handleGetMethodCode � ��handleGetApkComponents � ��handleGetApkInfo � ��handleGetIntentFilters � ��handleGetExportedComponents � ��handleListBroadcastReceivers � ��handleGetDeclaredPermissions � ��handleGetDefinedPermissions � ��handleGetApplicationAttributes � ��handleGetAllMetaDatat 7� NR requestBody requestJsontoolNameparams�query� 7� �� optString8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�org/json/JSONArray � �� ��iterator()Ljava/util/Iterator; java/util/Iterator next()Ljava/lang/Object;jadx/api/JavaClass   R getFullName    contains(Ljava/lang/CharSequence;)Z � @((Ljava/lang/Object;)Lorg/json/JSONArray;  @hasNextresultsarrayLorg/json/JSONArray;clsLjadx/api/JavaClass;fullName class_name � � getClasses ! "RgetCodet t className' method_name)java/lang/StringBuilder ( , - decompile / 0� getMethods2jadx/api/JavaMethod 14 5RgetName (7 89append-(Ljava/lang/String;)Ljava/lang/StringBuilder;; -> = ( (� t t methodNameLjava/lang/StringBuilder;Ljadx/api/JavaMethod;Foffset 7H IJoptInt(Ljava/lang/String;I)ILlimit �N OPget(I)Ljava/lang/Object; RTSjava/lang/Math UVmin(II)IXtotal 7Z @[*(Ljava/lang/String;I)Lorg/json/JSONObject;]classesmaxLimit allClassesLjava/util/List;iresponseLocalVariableTypeTable&Ljava/util/List<Ljadx/api/JavaClass;>; �M t t i j� getFieldsljadx/api/JavaField k4ttfieldLjadx/api/JavaField; s tindexOf v tV x yJfindMatchingBracket { |(II)Ljava/lang/String;~0Could not extract method code from class source.� l�tt classCode methodIndex openBracket closeBracket methodCode � ��charAt(I)CcodeopenPosdepthcC �� ��getRoot ()Ljadx/core/dex/nodes/RootNode; � _:�httpt x:tt _� �RgetPath�/t _� �RgetQuery _� �RgetRef _� �R getUserInfott x� �*(Ljava/lang/String;Ljava/lang/Throwable;)V�java/net/MalformedURLExceptionurl Ljava/net/MalformedURLException;getManifestDocument()Lorg/w3c/dom/Document; �� �� getResources�jadx/api/ResourceFile � ��getClass()Ljava/lang/Class;�getOriginalName�java/lang/Class �� �� getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; ���java/lang/reflect/Method ��invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;� getFileName�AndroidManifest.xml� loadContent�getText� � �([BLjava/nio/charset/Charset;)V ���(javax/xml/parsers/DocumentBuilderFactory �� newInstance,()Ljavax/xml/parsers/DocumentBuilderFactory; �� ��setNamespaceAware(Z)V �� ��newDocumentBuilder%()Ljavax/xml/parsers/DocumentBuilder;�java/io/ByteArrayInputStream �� h ���!javax/xml/parsers/DocumentBuilder ��parse-(Ljava/io/InputStream;)Lorg/w3c/dom/Document;�AndroidManifest.xml not found o:resLjadx/api/ResourceFile;name resContainerLjava/lang/Object;xmlxmlBytesfactory*Ljavax/xml/parsers/DocumentBuilderFactory; � ��activityservicereceiverprovider    org/w3c/dom/Document   getElementsByTagName*(Ljava/lang/String;)Lorg/w3c/dom/NodeList; org/w3c/dom/NodeList item(I)Lorg/w3c/dom/Node;org/w3c/dom/Element� android:name  u getAttributeexportedandroid:exported ! "i getLengthdocLorg/w3c/dom/Document; components[Ljava/lang/String;comparrnodesLorg/w3c/dom/NodeList;elLorg/w3c/dom/Element;obj&0manifest2package4 versionCode6android:versionCode8 versionName:android:versionName< application  ? intent-filterAactionCandroid.intent.action.MAINE mainActivityinfoappsappactsactfiltersjfilteractionskQ componentNTintent_filters intentFilters filterObj actionNodesYtrue[implicithasIntentFilter^uses-permission` permissionbprotectionLeveldandroid:protectionLevel f gh getAttributes()Lorg/w3c/dom/NamedNodeMap; jkorg/w3c/dom/NamedNodeMap monorg/w3c/dom/Node pR getNodeName mr sR getNodeValue j!attrsLorg/w3c/dom/NamedNodeMap;attrLorg/w3c/dom/Node;z meta-data|value~ android:value metaNodeslambda$1 �� ��accept()Ljava/net/Socket;� 4�R(Lcom/mobilehackinglab/jadxplugin/McpPlugin;Ljava/net/Socket;)Ljava/lang/Runnable; �� ��submit3(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; vqt clientSocketLjava/io/IOException;lambda$2 � �� SourceFileMcpPlugin.javaBootstrapMethods ���"java/lang/invoke/LambdaMetafactory �� metafactory�(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;� � <� ���$java/lang/invoke/StringConcatFactory l��(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;��,[MCP] Server started successfully at ://:�[MCP] Failed to start server: �)[MCP] Jadx fully loaded. Classes found:  � ���Failed to process tool: �"[MCP] Error handling connection: �Unknown tool: �Class not found: �Error fetching class: �No methods found for: �Error searching methods: �Error fetching methods: �Error fetching fields: �!Method '' not found in class ''�Class '' not found�Error fetching method code: �.Invalid protocol: . Only 'http' is supported.�,Missing or invalid host in HTTP interface: �6Port must be explicitly specified in HTTP interface: �(Path is not allowed in HTTP interface: �@HTTP interface must not contain query, fragment, or user info: �Malformed HTTP interface URL:  � ����#[MCP] Error accepting connection:  InnerClasses�%java/lang/invoke/MethodHandles$Lookup�java/lang/invoke/MethodHandlesLookup!    < *�*��$" %   !"r.*+�#*�%Y�'�(*�#*�(�*�0Y*�2�6�9�,./1-2. .<�L*�=� �AG�I�**�(�O�SL*+�W�[+�^+�c+�f�j�I�L�A+�n�s�I�8;v8;x& 89:>?!@8A<BKD L z{<|}~jo?@�Q<�?*��#*�#������=�[���I��[��I����M�����A��I�4:=�6 JKL MN*O,R4T:U>XAKG[O\ Q O����~ �&P���T��Y �������defg h id  ��2*�*���*�����*�����L*��� *����� vpqst!y(z1| 2 ~`vYZ�v�>+�cM+�f>,��:*��Y2�˵�*�ε�*��0Y*���6�9�& �� �� �(�-�:�=�4> >z{9� 4��.����B#MN��Y��Y+�߲���:+��:��:� ������+�+������2:���2:6 �$ �� � ����6 ��Y: ���� �:  � 6 �Y  �$: '�)�d-�/�Y* �2:�5� ��7Y�9:�b�7Y�;<�>:�N:�7Y�;B�n�D�>:�0E�)��7Y*�G�9:��7Y�;BJ�>:�L��O:�SY�U:X�Y��ZS�^W�b�e�i����M���,��+���#N,�-M� ,-�,-�j���,�+�N+���GN,�-M� ,-�,-�j+�+��,�N,�-M� ,-�,-�j,�M�A,�n�p�I� ��o!-�J��7�J��A�J��I�J��IoJo�1�����!�(�-�A�F�I�J�U�`�c�f�t�������������������������)�6�9�K�Y�e�g�p�w�{����������������"��# #qr�st!�uv(dwU7x`,yc)z� f!{ ��{ ��|} ��~� �� ��������6��KA���-=|}Y3��e']�|}~��7�kk�� � �kk��� �d�kk�����kk���o�7�M�kk��k� Lk � Jk Ak ��oIR.���  4u��@?�7Y+�9M,���N,���:� �7Y�;:-Y:��������� �"��o���.�]��:�H��A����˗"�L�U� ���G� ��� �E#&*�1/h9g?Sj�aMe+O�[��)�2�e��)� �W��)��I��)�5�;��)� �-��)����)�����)�����)������)�Z����)�p����)������)������)�=����)�e����)���*����*����*����*�§�*�ŧ|*�ȧs*�˧j*�Χa*�ѧX*�ԧO*�קF*�ڧ=*�ݧ4*��+*��"*���7Y�;B-���>��b� ����(��������� � � �   (>4? ?� 6��.�%��~M#�(77�� �77��n+����M��Y��N*�#������:�)���:�:�,� � -�W���ӻ7Y�;-�>��"8? K!R\$>n n��`�X8?~�,7�%��U+��M*�#�����:����N-�,�)�-� �����,�#�M,�n�$�8Jo9IJo"23)44593C8J9K:4U U��B%)K |}~'�7�7o����+&��M�(Y�*N*�#�����:�i���:�+�.��:�?���1:�3�,�� �!-��6:�6�3�6<�6W��������-�>� -�?� ,�@�M,�n�A���o2 JKL2M7NROdP�N�L�T�U�VH� ����B�=C2ZR0xD� |}~u�&7(�7(;� 7(�7(E�7o��� �+E�G=+K��G>�6�>*�#����:��6��Y��:6��M�:  ��W�`�Q��ڻ7Y�;:W�YWE�YWK�YW\�>W��Ja bcde"g0h9jBkHlVmakqpzq�r�s�t�vp � ��� �F��L��^�0z_`9qX�BhE,a�V  z0b�c 0z_d~!�"�% 7������+��M*�#�����:�X���N-�,�)�B��Y��:-�.��:����1:�3�W�����e�����,�f�M,�n�g�r�os��o2 ��)�4�=�W�b�l�s�}�����H� ���|%)J=6W xD� |}~X�7�,7��7�7o����+��M*�#�����:�X���N-�,�)�B��Y��:-�h��:����k:�m�W�����e�����,�n�M,�n�o�r�os��o2 ��)�4�=�W�b�l�s�}�����H� ���|%)J=6W pq� |}~X�7�,7��7�7o��� �+��M+&��N*�#�����:�����:�,�)���+�.��:�i���1:�3-�)�Q� :�3�r6  �4{ �u6  �#* �w6  �  `�z:  �}�����-,�����U,���M,�n�����o���o���o^���2�>�C�^�j�q�}���������������������������z � ����%�B2�^ZxDqG�};�� �&�� ��� �� � |}~��&7�+7�a 71�7�7�7oyJ�>>`6�,+��6{� ��}� �����+�����. �� ����&�)�-�0�<�>> >�>��<��5a���~� ���@�=*�#�4*�#���(*�#�����*�#���������L�9:o���"�6�:�;�= ;|}~8AoUV�xe��_Y+��M�,�^�/��xY,�^�����,�c� ,�c���xY+�����,�f��xY+�����,���(,����,����)��xY+�����,���,��� ,����xY+�����,�M�xY+��,������:   '8FN\z���� �!*� �z ��{�|�~�'_ + �����oX*�#������M��,����LN+����¶�+����N�$:+����¶�+����N�:-��-ж/��+����¶�+���:����¶�����:�.:+����¶�+�����:�Y���:��:�����Y��O���,����oY���!;>o@Z]o���oF&'!);*@,Z-_/m1�5�6�8�9�;�<�=�&�@f  ���!��@|}�n�����#��)|}������~o��(�o��oo��E�o�*�"��8�*��M�7Y�;N�YSYSYSYS:Y:�66��2:��Y��: ,�: 6 �K  ��: �7Y�;:   ��>W  ��>W  �W�   � ���- �>W���|-�L�M�7Y�;B,�n�>����oJEF G+H@IIJSKYLgMpN�O�Q�K�S�H�U�V�Wz � ����#$ �=�+�%&@v'Im( Sc)* VWa� g7+, p.-� �|}~r�9 7 7..� 7 7..��G� 7 7..� 7o���G*��M�7Y�;N,/���:-11��>W-35��>W-79��>W,;�:� ����:�=:6����:  >�=: 6 �h  ��:  @�=: 6�9 ��:B��)�-D ��>W� � ����   � ����� ��c-�L�M�7Y�;B,�n�>��01oj]^ _!`3aEbWcbdleyf�g�h�i�j�k�l�m�n�o�p�m jg+v1w2x�G G��,#$ $F�!0,b�G*y�H,��I*��a���J, �wK* �tL� �TM, �HN* �EO��%A,2|}~Q �� 7 7��2��� �7o���^*��M��Y��N�YSYSYS:Y:�66� 2:,�: 6 ��  ��: �7Y�;:  P�>W  ��>W��Y��:  >�=:6�t��:�7Y�;:��Y��:@�=:6� ����W�� ���R�>W �W�� ��� S �>W- �W�   � ������-�e�M�7Y�;B,�n�>��GHoz~ �%�:�D�J�X�a�l�������������������������"�)�8�B�H�I��^ ^��C#$ ;=%#%&:�'D�)* G�a� X�+, a�-� ��K ��U*��L��`M,�WV��NN�BW*�,O�I|}~) �3 7 �..� 7 �..�O7 �..7��17 �..7�7��!7 �..7�� 7 �..� 7 �..� 7o��*��M��Y��N�YSYSYSYS:Y:�66��2:,�: 6 ��  ��:  �:  >�=� ��6 X �)� ��O �J�7Y�;:P�>W ��>W �� Z� �>W-�W�   � ��b���A-�e�M�7Y�;B,�n�>��oR�� �+�@�J�P�^�j����������������������  ���#$ �=+�%&@�'J�)* M�a� ^�+, jx �_\ �>-�|}~ �9 7 �..� 7 �..�/@��97 �..77�7 �..77� 7 �..� 7 �..� 7o��� *��M��Y��N,�:6����:�7Y�;:��>W��Y��:>�=: 6 �`  ��: ��Y��:  @�=: 6�   ����W� � ��� �W�   � ���S�>W-�W�� ��4-�e�M�7Y�;B,�n�>����ob�� ���,�5�H�Q�]�c�q�z������������������������   ���#$ �=�)*�a�,�+,5�-�Q�K]�U* `lL� qLM, zCN �7W* �,O��|}~��7 ��D 7 �7��(7 �7��� 7 �7�� 7 ��7o��2f*��M��Y��N,]�:6�#��:-��W�� ���-�e�M�7Y�;B,�n�>��OPo* �� ���,�;�J�P�Q�Rf f��K#$ C=8)*/a�,+,Q|}~*�7 ��7o��q�*��M��Y��N,_�:6�J��:�7Y�;:��>Wac��>W-�W�� ���-�e�M�7Y�;B,�n�>��vwo6 �� ���,�5�H�[�b�q�w�x�\ � ���r#$ j=_)*Va�,6+,5--�x|}~,�7 ��F�7o��| �*��M�7Y�;N,;�:� �L��:�e:6�$�i:-�l�q�>W��t���-�L�M�7Y�;B,�n�>��pqo6 �� ��"�/�8�>I\�kqrf � ���l#$ d=�Y)*/<+,83uv;0a�Iwxr|}~3�>7 7j � �7o��q�*��M��Y��N,y�:6�J��:�7Y�;:��>W{}��>W-�W�� ���-�e�M�7Y�;B,�n�>��vwo6   ,5H[bqwx\ � ���r#$ j=_*Va�,6+,5--�x|}~,�7 ��F�7o��>�6*����L*��*+����W�L*���A+�����I*���ɱv"�� �� �'�6�=� > �r |�~[v��0*+����  ����������������������������������������������������������������� ���

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/il-il1/APK-Security-Guard-MCP-Suite'

If you have feedback or need assistance with the MCP directory API, please join our Discord server