CasperSecurity

Current Path : /usr/share/apport/
Upload File :
Current File : //usr/share/apport/java_uncaught_exception

#!/usr/bin/python3

'''Receive details from ApportUncaughtExceptionHandler.

This generates and saves a problem report.
'''

# Copyright 2010 Canonical Ltd.
# Author: Matt Zimmerman <mdz@ubuntu.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
# the full text of the license.

import sys

if sys.version_info.major < 3:
    from urlparse import urlparse
    urlparse  # pyflakes
else:
    from urllib.parse import urlparse


def make_title(report):
    lines = report['StackTrace'].split('\n')
    message = lines[0].strip()
    stackframe = lines[1].strip()
    return '%s in %s' % (message, stackframe)


def main():
    from apport.packaging_impl import impl as packaging
    if not packaging.enabled():
        return -1

    # read from the JVM process a sequence of key, value delimited by null
    # bytes
    items = sys.stdin.read().split('\0')
    d = dict()
    while items:
        key = items.pop(0)
        if not items:
            break
        value = items.pop(0)
        d[key] = value

    # create report
    import apport.report
    import os

    report = apport.report.Report(type='Crash')
    # assume our parent is the JVM process
    report.pid = os.getppid()

    report.add_os_info()
    report.add_proc_info()
    # these aren't relevant because the crash was in bytecode
    del report['ProcMaps']
    del report['ProcStatus']
    report.add_user_info()

    # add in data which was fed to us from the JVM process
    for key, value in d.items():
        report[key] = value

    # Add an ExecutablePath pointing to the file where the main class resides
    if 'MainClassUrl' in report:
        url = report['MainClassUrl']

        scheme, netloc, path, params, query, fragment = urlparse(url)

        if scheme == 'jar':
            # path is then a URL to the jar file
            scheme, netloc, path, params, query, fragment = urlparse(path)
            if '!/' in path:
                path = path.split('!/', 1)[0]

        if scheme == 'file':
            report['ExecutablePath'] = path
        else:
            # Program at some non-file URL crashed. Give up.
            return

    report['Title'] = make_title(report)

    try:
        with apport.fileutils.make_report_file(report) as f:
            report.write(f)
    except (IOError, OSError) as e:
        apport.fatal('Cannot create report: ' + str(e))


if __name__ == '__main__':
    main()
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY