R. Lakshmana Kumar

31 papers Journal 31
YearRankTypeTitle / Venue / Authors
2026 J jnl
Int. J. Commun. Syst.
Manikandan Sundaram, Kujani T, R. Lakshmana Kumar, P. Punitha
2026 J jnl
Intell. Data Anal.
M. Ananthi, R. Lakshmana Kumar, BalaAnand Muthu, P. Punitha
2025 J jnl
Int. J. Pattern Recognit. Artif. Intell.
V. Padmavathi, C. Suresh, R. Lakshmana Kumar, P. Punitha
2025 J jnl
Intell. Data Anal.
M. Shyamala Devi, R. Aruna, Saman M. Almufti, P. Punitha, R. Lakshmana Kumar
2025 J jnl
Int. J. Pattern Recognit. Artif. Intell.
Manikandan Sundaram, Vinoth Kumar Sakthivelu, R. Lakshmana Kumar, P. Punitha
2025 J jnl
Wirel. Networks
C. P. Thamil Selvi, R. Lakshmana Kumar, P. Punitha
2025 J jnl
Trans. Emerg. Telecommun. Technol.
J. Poongodi, Kavitha K, S. Sathish, R. Lakshmana Kumar
2025 J jnl
Expert Syst. J. Knowl. Eng.
Kapil Aggarwal, Bui Thanh Khoa, K. V. Daya Sagar, Ruchi Agrawal, Mallika Dhingra, Jagrit Dhingra, R. Lakshmana Kumar
2025 J jnl
Intell. Data Anal.
K. Selva Sheela, Vinoth Kumar Sakthivelu, Saman M. Almufti, R. Lakshmana Kumar
2025 J jnl
Sustain. Comput. Informatics Syst.
S. Jayanthi, R. Lakshmana Kumar, P. Punitha, Muthu BalaAnand, C. B. Sivaparthipan
2024 J jnl
Int. J. Commun. Syst.
P. Punitha, C. B. Sivaparthipan, Bala Anand Muthu, R. Lakshmana Kumar
2024 J jnl
J. Intell. Fuzzy Syst.
R. Lakshmana Kumar, S. Jayanthi, BalaAnand Muthu, C. B. Sivaparthipan
2024 J jnl
Int. J. Inf. Commun. Technol.
Youwu Zhang, Yongquan Yan, R. Lakshmana Kumar, Sapna Juneja
2024 J jnl
Wirel. Networks
Amjad Aldweesh, Sarangam Kodati, Mohammad Alauthman, Ibrahim Aqeel, Ibrahim Mohsen Khormi, M. Dhasaratham, R. Lakshmana Kumar
2024 J jnl
Int. J. Cooperative Inf. Syst.
Tamizharasi Thirugnanam, Mohammad Gouse Galety, Manas Ranjan Pradhan, Ruchi Agrawal, A. Shobanadevi, Saman M. Almufti, R. Lakshmana Kumar
2024 J jnl
Int. J. Cooperative Inf. Syst.
P. Punitha, R. Lakshmana Kumar, S. Revathi, R. Premalatha, R. S. Aiswarya
2024 J jnl
Wirel. Pers. Commun.
BalaAnand Muthu, C. B. Sivaparthipan, R. Lakshmana Kumar, S. Jayanthi, Cheng-Chi Lee
2023 J jnl
Complex Intell. Syst.
Sridhar Mandapati, Seifedine Kadry, R. Lakshmana Kumar, Krongkarn Sutham, Orawit Thinnukool
2023 J jnl
J. Comb. Optim.
S. Gokulakrishnan, Muhammad Aslam Jarwar, Mohammed Hasan Ali, M. M. Kamruzzaman, Iyapparaja Meenakshisundaram, Mustafa Musa Jaber, R. Lakshmana Kumar
2022 J jnl
Int. J. Commun. Syst.
K. Rajakumari, P. Punitha, R. Lakshmana Kumar, C. Suresh
2021 J jnl
Int. J. Electron. Bus.
Arun Murugesan, Saminathan Balamurali, Fadi Al-Turjman, R. Lakshmana Kumar
2021 J jnl
Trans. Emerg. Telecommun. Technol.
Arun Murugesan, Saminathan Balamurali, Fadi Al-Turjman, R. Lakshmana Kumar
2021 J jnl
Phys. Commun.
R. Lakshmana Kumar, Quoc-Viet Pham, Firoz Khan, Md. Jalil Piran, Kapal Dev
2021 J jnl
IEEE Access
P. G. Shynu, Varun G. Menon, R. Lakshmana Kumar, Seifedine Nimer Kadry, Yunyoung Nam
2021 J jnl
IEEE Syst. J.
Somula Ramasubbareddy, Sasikala Ramasamy, Kshira Sagar Sahoo, R. Lakshmana Kumar, Quoc-Viet Pham, Nhu-Ngoc Dao
2021 J jnl
J. Multiple Valued Log. Soft Comput.
Li Xiujuan, Mohan Krishna Kagita, R. Lakshmana Kumar
2021 J jnl
Int. J. Knowl. Syst. Sci.
Sankar Sennan, Ramasubbareddy Somula, R. Lakshmana Kumar, P. Srinivasan, M. Amala Jayanthi
2020 J jnl
Int. J. Wavelets Multiresolution Inf. Process.
R. Vijayalakshmi, V. Vasudevan, Seifedine Nimer Kadry, R. Lakshmana Kumar
2020 J jnl
Inf. Technol. Control.
R. Lakshmana Kumar, N. Kannammal, Sujatha Krishnamoorthy, Seifedine Nimer Kadry
2018 J jnl
Int. J. Grid Util. Comput.
M. Amala Jayanthi, R. Lakshmana Kumar, S. Swathi
2014 J jnl
J. Comput. Sci.
R. Lakshmana Kumar, M. S. Irfan Ahmed
redb/extractors/decompiler/apk/apktool_wrapper.py
← Index redb/extractors/decompiler/apk/apktool_wrapper.py python
"""Apktool disassembler subprocess wrapper.

Manages apktool subprocess execution for smali disassembly,
following the CAPA extractor subprocess pattern.
"""

import os
import signal
import subprocess
from typing import List, Optional


class ApktoolDisassembler:
    """Subprocess wrapper for apktool smali disassembly."""

    def __init__(
        self, apktool_path: str = None, timeout: int = None, log=None
    ):
        self.apktool_path = apktool_path or os.getenv("APKTOOL_PATH", "apktool")
        self.timeout = timeout or int(os.getenv("APKTOOL_TIMEOUT", "120"))
        self.log = log

    def disassemble(self, apk_path: str, output_dir: str) -> bool:
        """Run apktool disassembly on an APK file.

        Returns True on success, False on failure.
        """
        cmd = [
            self.apktool_path,
            "d",
            "--no-res",
            "--force",
            "--output", output_dir,
            apk_path,
        ]

        try:
            process = subprocess.Popen(
                cmd,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True,
                preexec_fn=os.setsid,
            )

            try:
                stdout, stderr = process.communicate(timeout=self.timeout)
                if process.returncode != 0:
                    if self.log:
                        self.log.warning(
                            f"apktool returned non-zero exit code {process.returncode}: "
                            f"{stderr[:500] if stderr else 'no stderr'}"
                        )
                    return False
                return True

            except subprocess.TimeoutExpired:
                if self.log:
                    self.log.error(
                        f"apktool timed out after {self.timeout}s"
                    )
                try:
                    os.killpg(os.getpgid(process.pid), signal.SIGTERM)
                    process.wait(timeout=3)
                except (ProcessLookupError, subprocess.TimeoutExpired):
                    try:
                        os.killpg(os.getpgid(process.pid), signal.SIGKILL)
                    except ProcessLookupError:
                        pass
                return False

        except FileNotFoundError:
            if self.log:
                self.log.error(
                    f"apktool not found at '{self.apktool_path}'. "
                    "Install apktool or set APKTOOL_PATH env var."
                )
            return False
        except Exception as e:
            if self.log:
                self.log.error(f"apktool execution error: {e}")
            return False

    def get_smali_directories(self, output_dir: str) -> List[str]:
        """Return paths to all smali output directories.

        Handles multi-DEX: smali/, smali_classes2/, smali_classes3/, etc.
        """
        smali_dirs = []
        if not os.path.isdir(output_dir):
            return smali_dirs

        for entry in sorted(os.listdir(output_dir)):
            if entry == "smali" or entry.startswith("smali_classes"):
                full_path = os.path.join(output_dir, entry)
                if os.path.isdir(full_path):
                    smali_dirs.append(full_path)

        return smali_dirs