纯手工解密几大在线js加密网站(3)

2023-05-16

0x0.开头

​ 续接上章,心血来潮想挨个破解一下各大js加密的网站,了解一下现有的js加密的逻辑。

0x1.介绍

Sojson支持js的不可逆混淆加密,和很多高级的加密配置,还增加了小白专用的一键配置常规配置,和禁控制台调试输出、A级保护、变量方法全混淆等诸多高级配置,很多细节做的不错。查了一下资历,这家站13年创建的,搞了快有十个年头了,是个老品牌。接下来我们做个demo加密一下试试,以下加密,除了基本配置,我还勾选了方法函数变量全部重命名。

0x2.源代码
(function () {
    String.prototype.searchAB = function (){
        return this.match(/[^A|B]/g);
    }
    const str = '本工具由 wwBw.jsjiami.cAom 提供接口。\n专注JS安全领域近10年\n企业化运营\n专业的JS加密研发团队。'.searchAB().toString().replaceAll(',', '');
    alert(str);
    console.log(str);
}());
0x3.加密后
/*
 * 加密工具已经升级了一个版本,目前为 jsjiami.com.v5 ,主要加强了算法,以及防破解【绝对不可逆】配置,耶稣也无法100%还原,我说的。;
 * 已经打算把这个工具基础功能一直免费下去。还希望支持我。
 * 另外 jsjiami.com.v5 已经强制加入校验,注释可以去掉,但是 jsjiami.com.v5 不能去掉(如果你开通了VIP,可以手动去掉),其他都没有任何绑定。
 * 誓死不会加入任何后门,jsjiami.com JS 加密的使命就是为了保护你们的Javascript 。
 * 警告:如果您恶意去掉 jsjiami.com.v5 那么我们将不会保护您的JavaScript代码。请遵守规则
 * 新版本: https://www.jsjiami.com/ 支持批量加密,支持大文件加密,拥有更多加密。 */

;var encode_version = 'jsjiami.com.v5', nayxk = '__0xeb23e',  __0xeb23e=['IXYRHEI=','CCYiIcOu','GsK8wowTHQ==','54mM5p2X5YyJ77+CaHbkvbzlrJPmnpDlv6XnqrLvv5rovLHorLvmlbbmj7bmi53kuoHnmoLltobkvpo=','woPDvz0=','5p+W5bWs5Ya+55SSw6LCoggiLEM/woXCr8ONwqHCvcKXacK0Y8KDSTPmjazkv7DmjIDljZjjg7TCjeS4lOayhMKawrflr43lh5npobzlnozovIPDrsKE5bqJw6/kv4/ku4Dlj5zovabok4HDieS5muS4kueblxER5Yim5ayS56OQ5Y2U5ZqX6ZmQ44G+','SgBZNxA=','wpHDhhvDumI=','w6vDsy7CusOJ','wqAJw7VaNMOZwpPCmMO1','w48dwrXCtMOQ','K3jDi8ODw5tMwrfChg==','woTDmQ/DjQQ=','wojDqDTDjFDDocOfwpY=','wpIAMiPDvgptwoQ=','KcO/N1tcSEViwqHCrA==','w4nDgMOr','54qC5p+/5Y+Q77y6WsOY5L2N5ayf5p6w5byq56ms77276L226K6i5paq5oya5oin5LuK55qC5bW95Lyh','5Yuz6ZqH54qh5p2Y5Y6d77+QwpRy5L2s5a6n5p+F5byU56qQ','PCjDoDkawr5gcXDDrMKDwq7ChFE=','wrjDtzLDjxE=','w7J+IcOlwok=','RHkTYC4=','LMKlwo0pBw==','LmBfa8Kh','MDAeOMOq','wp/DmyvDmyU=','cFrCvSDCnQ=='];(function(_0x4fe50f,_0x1873df){var _0x13858f=function(_0x5e0bfd){while(--_0x5e0bfd){_0x4fe50f['push'](_0x4fe50f['shift']());}};_0x13858f(++_0x1873df);}(__0xeb23e,0x1a8));var _0x283e=function(_0x27a5bc,_0x101af3){_0x27a5bc=_0x27a5bc-0x0;var _0x10bb4e=__0xeb23e[_0x27a5bc];if(_0x283e['initialized']===undefined){(function(){var _0x3a7cff=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x132a83='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x3a7cff['atob']||(_0x3a7cff['atob']=function(_0x1eb12d){var _0x106424=String(_0x1eb12d)['replace'](/=+$/,'');for(var _0x4a2000=0x0,_0x4726be,_0x4b15c7,_0x18229a=0x0,_0xb6f8e4='';_0x4b15c7=_0x106424['charAt'](_0x18229a++);~_0x4b15c7&&(_0x4726be=_0x4a2000%0x4?_0x4726be*0x40+_0x4b15c7:_0x4b15c7,_0x4a2000++%0x4)?_0xb6f8e4+=String['fromCharCode'](0xff&_0x4726be>>(-0x2*_0x4a2000&0x6)):0x0){_0x4b15c7=_0x132a83['indexOf'](_0x4b15c7);}return _0xb6f8e4;});}());var _0x5bdc07=function(_0x334a5b,_0x1635b7){var _0x43421f=[],_0x216485=0x0,_0xa7d60d,_0x5b8f1e='',_0x792d05='';_0x334a5b=atob(_0x334a5b);for(var _0xc451ca=0x0,_0xc846a3=_0x334a5b['length'];_0xc451ca<_0xc846a3;_0xc451ca++){_0x792d05+='%'+('00'+_0x334a5b['charCodeAt'](_0xc451ca)['toString'](0x10))['slice'](-0x2);}_0x334a5b=decodeURIComponent(_0x792d05);for(var _0x430013=0x0;_0x430013<0x100;_0x430013++){_0x43421f[_0x430013]=_0x430013;}for(_0x430013=0x0;_0x430013<0x100;_0x430013++){_0x216485=(_0x216485+_0x43421f[_0x430013]+_0x1635b7['charCodeAt'](_0x430013%_0x1635b7['length']))%0x100;_0xa7d60d=_0x43421f[_0x430013];_0x43421f[_0x430013]=_0x43421f[_0x216485];_0x43421f[_0x216485]=_0xa7d60d;}_0x430013=0x0;_0x216485=0x0;for(var _0x5bff45=0x0;_0x5bff45<_0x334a5b['length'];_0x5bff45++){_0x430013=(_0x430013+0x1)%0x100;_0x216485=(_0x216485+_0x43421f[_0x430013])%0x100;_0xa7d60d=_0x43421f[_0x430013];_0x43421f[_0x430013]=_0x43421f[_0x216485];_0x43421f[_0x216485]=_0xa7d60d;_0x5b8f1e+=String['fromCharCode'](_0x334a5b['charCodeAt'](_0x5bff45)^_0x43421f[(_0x43421f[_0x430013]+_0x43421f[_0x216485])%0x100]);}return _0x5b8f1e;};_0x283e['rc4']=_0x5bdc07;_0x283e['data']={};_0x283e['initialized']=!![];}var _0x52f150=_0x283e['data'][_0x27a5bc];if(_0x52f150===undefined){if(_0x283e['once']===undefined){_0x283e['once']=!![];}_0x10bb4e=_0x283e['rc4'](_0x10bb4e,_0x101af3);_0x283e['data'][_0x27a5bc]=_0x10bb4e;}else{_0x10bb4e=_0x52f150;}return _0x10bb4e;};(function(){var _0x555370={'wNKpT':function _0x5d77c1(_0x50f6c6,_0x50079e){return _0x50f6c6(_0x50079e);}};String['prototype']['searchAB']=function(){var _0x433705={'nczMX':function _0x36f6e4(_0x16f977,_0x13c64e){return _0x16f977===_0x13c64e;},'jKNDQ':_0x283e('0x0','ch)&'),'qfYEY':_0x283e('0x1','b6lp'),'Jjmrt':function _0x2094cd(_0x3a122a,_0xbf7144){return _0x3a122a(_0xbf7144);}};if(_0x433705[_0x283e('0x2','Bv8b')](_0x433705[_0x283e('0x3','ch)&')],_0x433705['jKNDQ'])){return this[_0x283e('0x4','2C5f')](/[^A|B]/g);}else{String[_0x283e('0x5','5npl')]['searchAB']=function(){return this[_0x283e('0x6','o@1r')](/[^A|B]/g);};const _0x2afd9f=_0x433705['qfYEY']['searchAB']()[_0x283e('0x7','b10M')]()['replaceAll'](',','');_0x433705[_0x283e('0x8','cuhX')](alert,_0x2afd9f);console['log'](_0x2afd9f);}};const _0x493c6e='本工具由\x20wwBw.jsjiami.cAom\x20提供接口。\x0a专注JS安全领域近10年\x0a企业化运营\x0a专业的JS加密研发团队。'[_0x283e('0x9','ch)&')]()[_0x283e('0xa','^Rl*')]()[_0x283e('0xb','FEg@')](',','');_0x555370['wNKpT'](alert,_0x493c6e);console['log'](_0x493c6e);}());;(function(_0x26a8bf,_0x1b3d22,_0x57167a){var _0x1ecaea={'vDPpa':function _0x4bbe24(_0x196798,_0x28ae00){return _0x196798===_0x28ae00;},'wVdMw':_0x283e('0xc','299L'),'HXEbb':'jGZ','YTjTR':'ert','Nhlic':function _0x59eb7e(_0x3ce965,_0x6ad683){return _0x3ce965!==_0x6ad683;},'oVWCQ':'undefined','QhIdU':function _0x3e047a(_0x218201,_0x37678c){return _0x218201+_0x37678c;},'WmmUB':_0x283e('0xd','9%A%'),'PfMev':_0x283e('0xe','eU!)'),'EZyiI':function _0x18d526(_0x187205,_0x1c45b1){return _0x187205===_0x1c45b1;},'NRlie':_0x283e('0xf','PVfY'),'xqmSy':function _0x51338a(_0x1ca5e1,_0x4fcbee){return _0x1ca5e1+_0x4fcbee;}};_0x57167a='al';try{if(_0x1ecaea[_0x283e('0x10','cuhX')](_0x1ecaea['wVdMw'],_0x1ecaea[_0x283e('0x11','ns*5')])){_0x57167a='al';try{_0x57167a+=_0x1ecaea[_0x283e('0x12','#xjn')];_0x1b3d22=encode_version;if(!(_0x1ecaea[_0x283e('0x13','AM@r')](typeof _0x1b3d22,_0x1ecaea[_0x283e('0x14','Ak*G')])&&_0x1ecaea[_0x283e('0x15','k4b2')](_0x1b3d22,'jsjiami.com.v5'))){_0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x16','cuhX')]('删除',_0x1ecaea['WmmUB']));}}catch(_0x2c780a){_0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x17','UwAd')]);}}else{_0x57167a+='ert';_0x1b3d22=encode_version;if(!(typeof _0x1b3d22!=='undefined'&&_0x1ecaea[_0x283e('0x18','jwV3')](_0x1b3d22,_0x1ecaea[_0x283e('0x19','k4b2')]))){_0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x1a','AM@r')]('删除',_0x283e('0x1b','ge&n')));}}}catch(_0x46de5d){_0x26a8bf[_0x57167a]('删除版本号,js会定期弹窗');}}(window));;encode_version = 'jsjiami.com.v5';
0x4.格式化一下,去除注释。
;var encode_version = 'jsjiami.com.v5', nayxk = '__0xeb23e',
    __0xeb23e = ['IXYRHEI=', 'CCYiIcOu', 'GsK8wowTHQ==', '54mM5p2X5YyJ77+CaHbkvbzlrJPmnpDlv6XnqrLvv5rovLHorLvmlbbmj7bmi53kuoHnmoLltobkvpo=', 'woPDvz0=', '5p+W5bWs5Ya+55SSw6LCoggiLEM/woXCr8ONwqHCvcKXacK0Y8KDSTPmjazkv7DmjIDljZjjg7TCjeS4lOayhMKawrflr43lh5npobzlnozovIPDrsKE5bqJw6/kv4/ku4Dlj5zovabok4HDieS5muS4kueblxER5Yim5ayS56OQ5Y2U5ZqX6ZmQ44G+', 'SgBZNxA=', 'wpHDhhvDumI=', 'w6vDsy7CusOJ', 'wqAJw7VaNMOZwpPCmMO1', 'w48dwrXCtMOQ', 'K3jDi8ODw5tMwrfChg==', 'woTDmQ/DjQQ=', 'wojDqDTDjFDDocOfwpY=', 'wpIAMiPDvgptwoQ=', 'KcO/N1tcSEViwqHCrA==', 'w4nDgMOr', '54qC5p+/5Y+Q77y6WsOY5L2N5ayf5p6w5byq56ms77276L226K6i5paq5oya5oin5LuK55qC5bW95Lyh', '5Yuz6ZqH54qh5p2Y5Y6d77+QwpRy5L2s5a6n5p+F5byU56qQ', 'PCjDoDkawr5gcXDDrMKDwq7ChFE=', 'wrjDtzLDjxE=', 'w7J+IcOlwok=', 'RHkTYC4=', 'LMKlwo0pBw==', 'LmBfa8Kh', 'MDAeOMOq', 'wp/DmyvDmyU=', 'cFrCvSDCnQ=='];
(function (_0x4fe50f, _0x1873df) {
    var _0x13858f = function (_0x5e0bfd) {
        while (--_0x5e0bfd) {
            _0x4fe50f['push'](_0x4fe50f['shift']());
        }
    };
    _0x13858f(++_0x1873df);
}(__0xeb23e, 0x1a8));
var _0x283e = function (_0x27a5bc, _0x101af3) {
    _0x27a5bc = _0x27a5bc - 0x0;
    var _0x10bb4e = __0xeb23e[_0x27a5bc];
    if (_0x283e['initialized'] === undefined) {
        (function () {
            var _0x3a7cff = typeof window !== 'undefined' ? window : typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ? global : this;
            var _0x132a83 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
            _0x3a7cff['atob'] || (_0x3a7cff['atob'] = function (_0x1eb12d) {
                var _0x106424 = String(_0x1eb12d)['replace'](/=+$/, '');
                for (var _0x4a2000 = 0x0, _0x4726be, _0x4b15c7, _0x18229a = 0x0, _0xb6f8e4 = ''; _0x4b15c7 = _0x106424['charAt'](_0x18229a++); ~_0x4b15c7 && (_0x4726be = _0x4a2000 % 0x4 ? _0x4726be * 0x40 + _0x4b15c7 : _0x4b15c7, _0x4a2000++ % 0x4) ? _0xb6f8e4 += String['fromCharCode'](0xff & _0x4726be >> (-0x2 * _0x4a2000 & 0x6)) : 0x0) {
                    _0x4b15c7 = _0x132a83['indexOf'](_0x4b15c7);
                }
                return _0xb6f8e4;
            });
        }());
        var _0x5bdc07 = function (_0x334a5b, _0x1635b7) {
            var _0x43421f = [], _0x216485 = 0x0, _0xa7d60d, _0x5b8f1e = '', _0x792d05 = '';
            _0x334a5b = atob(_0x334a5b);
            for (var _0xc451ca = 0x0, _0xc846a3 = _0x334a5b['length']; _0xc451ca < _0xc846a3; _0xc451ca++) {
                _0x792d05 += '%' + ('00' + _0x334a5b['charCodeAt'](_0xc451ca)['toString'](0x10))['slice'](-0x2);
            }
            _0x334a5b = decodeURIComponent(_0x792d05);
            for (var _0x430013 = 0x0; _0x430013 < 0x100; _0x430013++) {
                _0x43421f[_0x430013] = _0x430013;
            }
            for (_0x430013 = 0x0; _0x430013 < 0x100; _0x430013++) {
                _0x216485 = (_0x216485 + _0x43421f[_0x430013] + _0x1635b7['charCodeAt'](_0x430013 % _0x1635b7['length'])) % 0x100;
                _0xa7d60d = _0x43421f[_0x430013];
                _0x43421f[_0x430013] = _0x43421f[_0x216485];
                _0x43421f[_0x216485] = _0xa7d60d;
            }
            _0x430013 = 0x0;
            _0x216485 = 0x0;
            for (var _0x5bff45 = 0x0; _0x5bff45 < _0x334a5b['length']; _0x5bff45++) {
                _0x430013 = (_0x430013 + 0x1) % 0x100;
                _0x216485 = (_0x216485 + _0x43421f[_0x430013]) % 0x100;
                _0xa7d60d = _0x43421f[_0x430013];
                _0x43421f[_0x430013] = _0x43421f[_0x216485];
                _0x43421f[_0x216485] = _0xa7d60d;
                _0x5b8f1e += String['fromCharCode'](_0x334a5b['charCodeAt'](_0x5bff45) ^ _0x43421f[(_0x43421f[_0x430013] + _0x43421f[_0x216485]) % 0x100]);
            }
            return _0x5b8f1e;
        };
        _0x283e['rc4'] = _0x5bdc07;
        _0x283e['data'] = {};
        _0x283e['initialized'] = !![];
    }
    var _0x52f150 = _0x283e['data'][_0x27a5bc];
    if (_0x52f150 === undefined) {
        if (_0x283e['once'] === undefined) {
            _0x283e['once'] = !![];
        }
        _0x10bb4e = _0x283e['rc4'](_0x10bb4e, _0x101af3);
        _0x283e['data'][_0x27a5bc] = _0x10bb4e;
    } else {
        _0x10bb4e = _0x52f150;
    }
    return _0x10bb4e;
};
(function () {
    var _0x555370 = {
        'wNKpT': function _0x5d77c1(_0x50f6c6, _0x50079e) {
            return _0x50f6c6(_0x50079e);
        }
    };
    String['prototype']['searchAB'] = function () {
        var _0x433705 = {
            'nczMX': function _0x36f6e4(_0x16f977, _0x13c64e) {
                return _0x16f977 === _0x13c64e;
            },
            'jKNDQ': _0x283e('0x0', 'ch)&'),
            'qfYEY': _0x283e('0x1', 'b6lp'),
            'Jjmrt': function _0x2094cd(_0x3a122a, _0xbf7144) {
                return _0x3a122a(_0xbf7144);
            }
        };
        if (_0x433705[_0x283e('0x2', 'Bv8b')](_0x433705[_0x283e('0x3', 'ch)&')], _0x433705['jKNDQ'])) {
            return this[_0x283e('0x4', '2C5f')](/[^A|B]/g);
        } else {
            String[_0x283e('0x5', '5npl')]['searchAB'] = function () {
                return this[_0x283e('0x6', 'o@1r')](/[^A|B]/g);
            };
            const _0x2afd9f = _0x433705['qfYEY']['searchAB']()[_0x283e('0x7', 'b10M')]()['replaceAll'](',', '');
            _0x433705[_0x283e('0x8', 'cuhX')](alert, _0x2afd9f);
            console['log'](_0x2afd9f);
        }
    };
    const _0x493c6e = '本工具由\x20wwBw.jsjiami.cAom\x20提供接口。\x0a专注JS安全领域近10年\x0a企业化运营\x0a专业的JS加密研发团队。'[_0x283e('0x9', 'ch)&')]()[_0x283e('0xa', '^Rl*')]()[_0x283e('0xb', 'FEg@')](',', '');
    _0x555370['wNKpT'](alert, _0x493c6e);
    console['log'](_0x493c6e);
}());
;(function (_0x26a8bf, _0x1b3d22, _0x57167a) {
    var _0x1ecaea = {
        'vDPpa': function _0x4bbe24(_0x196798, _0x28ae00) {
            return _0x196798 === _0x28ae00;
        },
        'wVdMw': _0x283e('0xc', '299L'),
        'HXEbb': 'jGZ',
        'YTjTR': 'ert',
        'Nhlic': function _0x59eb7e(_0x3ce965, _0x6ad683) {
            return _0x3ce965 !== _0x6ad683;
        },
        'oVWCQ': 'undefined',
        'QhIdU': function _0x3e047a(_0x218201, _0x37678c) {
            return _0x218201 + _0x37678c;
        },
        'WmmUB': _0x283e('0xd', '9%A%'),
        'PfMev': _0x283e('0xe', 'eU!)'),
        'EZyiI': function _0x18d526(_0x187205, _0x1c45b1) {
            return _0x187205 === _0x1c45b1;
        },
        'NRlie': _0x283e('0xf', 'PVfY'),
        'xqmSy': function _0x51338a(_0x1ca5e1, _0x4fcbee) {
            return _0x1ca5e1 + _0x4fcbee;
        }
    };
    _0x57167a = 'al';
    try {
        if (_0x1ecaea[_0x283e('0x10', 'cuhX')](_0x1ecaea['wVdMw'], _0x1ecaea[_0x283e('0x11', 'ns*5')])) {
            _0x57167a = 'al';
            try {
                _0x57167a += _0x1ecaea[_0x283e('0x12', '#xjn')];
                _0x1b3d22 = encode_version;
                if (!(_0x1ecaea[_0x283e('0x13', 'AM@r')](typeof _0x1b3d22, _0x1ecaea[_0x283e('0x14', 'Ak*G')]) && _0x1ecaea[_0x283e('0x15', 'k4b2')](_0x1b3d22, 'jsjiami.com.v5'))) {
                    _0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x16', 'cuhX')]('删除', _0x1ecaea['WmmUB']));
                }
            } catch (_0x2c780a) {
                _0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x17', 'UwAd')]);
            }
        } else {
            _0x57167a += 'ert';
            _0x1b3d22 = encode_version;
            if (!(typeof _0x1b3d22 !== 'undefined' && _0x1ecaea[_0x283e('0x18', 'jwV3')](_0x1b3d22, _0x1ecaea[_0x283e('0x19', 'k4b2')]))) {
                _0x26a8bf[_0x57167a](_0x1ecaea[_0x283e('0x1a', 'AM@r')]('删除', _0x283e('0x1b', 'ge&n')));
            }
        }
    } catch (_0x46de5d) {
        _0x26a8bf[_0x57167a]('删除版本号,js会定期弹窗');
    }
}(window));
encode_version = 'jsjiami.com.v5';
0x5.加密后的代码分析

大致分析一下加密后的代码都做了啥。将加密前后的代码做对比,代码体积从9行变成了159行,看起来还是不错的,比较精简。__0xeb23e中的参数明显经过了加密,看字面量像是base64,然后将23e的数组元素变换了位置。后边将代码打乱混淆了。

0x6.开始解密

首先我们尝试将加密后的代码运行一遍,如果发现可以成功运行,弹出了我们想要的值,那加密就没问题,保证了功能性始终一致。各位可以将加密前后的代码,F12调出浏览器开发者工具运行一下试试开头对数组参数的调整没什么看的,我们先将开头数组进行一个简单的解密,base64解出来都是乱码。然后看后边的一个加密函数,看到那种a~z的串,基本都是加密函数了。然后分析他的加密函数进行一个逆向。查看他做了什么。

大致解密流程就是这样子

1.分析代码结构

2.根据经验找到加密函数,分析加密函数做了什么

3.解出加密函数后就开始找代码主体,哪一块才是真正的业务代码。

0x7.捷径

如果有小白看不懂的也没关系,其实也可以通过支持在线混淆解密免费的工具jsjiami.com直接一键解密,可以说是js解密最快方式了。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

纯手工解密几大在线js加密网站(3) 的相关文章

  • Coursera Machine Learning 第二周 quiz Octave/Matlab Tutorial 习题答案

    1 Suppose I first execute the following Octave Matlab commands 1 2
  • C语言random问题

    总 结一下C语言random的用法 xff1a srand xff08 xff08 int xff09 time xff08 NULL xff09 xff09 用于设定随机数种子 rand 100 xff0c 产生 0 99 的随机数 如果
  • java.util.regex.PatternSyntaxException

    在处理字符串用到String replaceAll 这个方法的时候出现了这个异常 Exception in thread 34 main 34 java util regex PatternSyntaxException Dangling
  • Shell 脚本 Debug 方法

    可能有的程序员在对程序调试的时候用printf或者echo将信息挨条打印出来 xff0c 但是这比较麻烦 xff0c 因为在交付的时候还要将这些语句一条条删除 xff0c 下面对shell debug的方法稍微做一个总结 xff1a 1 使
  • JAVA 点击按钮展开一个新的Jpanel

    问题不太容易用语言来描述 xff0c 先直接上图吧 xff1a 点击按钮之前 xff1a 点击按钮之后 xff1a 那么如何实现这种功能呢 xff1f 首先在图一中的主JFrame中添加一个JScrollPane xff0c 在点击按钮后n
  • java 实现日历选择器

    首先引用com qt datapicker DatePicker 包实现如下 xff1a package Date import java awt event ActionEvent import java awt event Action
  • 获取JPasswordField组件中的密码

    在JTextField中有一个方法getText xff0c 可以返回组件中输入的字符串 xff0c 但是对于JPasswordField类 xff0c getText 方法已经不适用了 xff0c 执意使用的话 xff0c 获取的也是一串
  • 指针的大小

    说这个之前先了解几个概念 xff1a 字长 xff1a 字长是CPU的主要技术指标之一 xff0c 指的是CPU一次能并行处理的二进制的位数 xff0c 字长是8的整倍数 xff0c 通常的PC机的字长为16位 xff0c 32位 xff0
  • 程序设计思维与实践 Week6 作业A氪金带东树的直径的应用

    题意 xff1a 依次输入图中的点以及边权等信息 xff0c 最后输出每个点在图中所能到达的最远的路线的长度 例如所给的样例 xff1a input 输入文件包含多组测试数据 对于每组测试数据 xff0c 第一行一个整数N N lt 61
  • 《UNIX环境高级编程》(第二版)找不到apue.h问题

    UNIX环境高级编程 xff08 第二版 xff09 这本书 xff0c 实例程序中都包含头文件apue h xff0c 寻找linux usr include中 xff0c 缺找不到此头文件 xff0c 因此编译时会出错 实际上apue
  • java程序中,如何安全的结束一个正在运行的线程?

    如何停止java的线程一直是一个开发多线程程序常遇到的一个问题 在Java的多线程编程中 xff0c java lang Thread类型包含了一些列的方法start stop stop Throwable and suspend dest
  • RoboMaster视觉教程(1)摄像头

    观文有感 之 RoboMaster视觉教程 xff08 1 xff09 摄像头 闲来垂钓碧溪上 今天钓到一篇RM视觉摄像头的好文 xff0c 记录一下笔记 xff1a 文章目录 观文有感 之 RoboMaster视觉教程 xff08 1 x
  • 如何成为一名很酷的机器人工程师

    观文有感 之 如何成为一名很酷的机器人工程师 闲来垂钓碧溪上 今天来钓一波职业规划 xff0c 记录一下笔记 xff08 特别注意 xff1a 本文中大部分内容是复制粘贴的 xff0c 只有少数位置的删改和整理 xff0c 目的是分享一下大
  • 不同层面禁用PUT、DELETE、HEAD、TRACE、OPTIONS请求方式

    背景 对于一些对安全级别要求高的应用 xff0c 可能只允许有GET和POST请求 xff0c 其他请求方式需要禁用 xff0c 那么可以从多个层面来进行禁用 下面从大范围禁用到小范围禁用罗列如下 xff08 假定服务容器是tomcat x
  • keil中出现Undefined symbol FLASH_PrefetchBufferCmd (referred from main.o)等问题解决办法

    在keil中仿照别人的程序写了RCC初始化的程序 xff0c 编译后出现以下问题 obj pro1 axf Error L6218E Undefined symbol FLASH PrefetchBufferCmd referred fro
  • 接口测试——requests接口请求(十)

    1 requests库介绍与安装 requests库介绍 requests是一款非常火爆且常用的Python三方库能够实现HTTP协议的各种请求方法使用简单易上手 requests库的安装方法 pip install requests安装成
  • 微信聊天记录提取及分析(wordcloud+pyecharts)

    0 前言 之所以想要提取微信的聊天记录并分析是因为也开始再学习python xff0c 但是单纯看看语法什么的又很无趣 xff0c 无意间看到python可以进行微信聊天记录的分析 xff0c 就自己尝试做了一下 xff0c 感觉还是挺有意
  • 【C语言】输入一个正整数,判断其是否为素数

    span style font family none strong span style font size 18px 素数的定义 xff1a span strong span 素数 xff08 prime number xff09 又称
  • C 语言实例 -求分数数列1/2+2/3+3/5+5/8+...的前n项和

    程序分析 xff1a 抓住分子与分母的变化规律 xff1a 分子a xff1a 1 2 3 5 8 13 21 34 55 89 144 分母b xff1a 2 3 5 8 13 21 34 55 89 144 233 分母b把数赋给了分子
  • csp模拟二C咕咕东的奇妙序列

    题意 xff1a 咕咕东 正在上可怕的复变函数 xff0c 但对于稳拿A Plus的 咕咕东 来说 xff0c 她早已不再听课 xff0c 此时她在睡梦中 突然想到了一个奇怪的无限序列 xff1a 112123123412345 这个序列由

随机推荐

  • 【C语言】输入圆的半径,求解圆的周长和面积

    公式 xff1a C 61 2 r S 61 r 代码 xff1a include lt stdio h gt int main float r PI PI 61 3 14159 printf 34 请输入圆的半径 xff1a n 34 s
  • 【C语言】输入一个年份和月份,输出该月的天数

    分析 xff1a 三种类型 xff0c A 2月比较特殊 xff0c 平年的2月只有28天 xff0c 而闰年的2月有 29 天 xff1b B 4 6 9 11月 xff1b C 其他1 3 5 7 8 10 12月 代码 xff1a 输
  • 一个C语言程序是由( )组成?

    A 一个主程序和若干子程序组成 B 一个或多个函数组成 C 若干过程组成 D 若干子程序组成 正确答案 B 解析 解析 一个C源程序是由一个main函数和若干个其他函数组成的 函数是C程序的基本单位 xff0c 被调用的函数可以是系统提供的
  • 【Python】Tkinter教程

    什么是Tkinter xff1f Tkinter 是 Python 的标准 GUI 库 Python 使用 Tkinter 可以快速的创建 GUI 应用程序 由于 Tkinter 是内置到 python 的安装包中 只要安装好 Python
  • 【C语言】解决error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead...

    几天编译文件的时候报错 xff0c 编译出错信息 xff1a 错误 1 error C4996 39 fopen 39 This function or variable may be unsafe Consider using fopen
  • 【C语言】数据结构C语言版 实验7 二叉树

    编写算法函数void preorder1 bintree t 实现二叉树t的非递归前序遍历 include 34 bintree h 34 char a 61 34 ABC D E F 34 扩充二叉树序树t的前序序列 函数preorder
  • 让input标签的range属性显示数值

    lt input type 61 34 range 34 name 61 34 salary 34 max 61 34 20 34 min 61 34 15 34 onchange 61 34 document getElementById
  • 【Linux】安装x11vnc和xrdp,使用windows远程deepin

    一 环境准备 1 已安装deepin 虚拟机或物理机 xff0c 安装教程自行查询 xff0c 很简单 xff0c 此处用的开源版deepin20 1做测试 目前已更新到20 2 2 启用root账号 xff0c 终端执行 xff1a su
  • 吐血整理,Ubuntu必备应用推荐,满满的干货!

    吐血整理 xff0c Ubuntu必备应用推荐 xff0c 满满的干货 xff01 哈喽 xff0c 大家好 xff0c 欢迎收看欢哥TV 我是欢哥 无论你是刚接触Ubuntu xff0c 还是最近从Windows改用Ubuntu xff0
  • Proxmox VE(PVE)添加硬盘做存储

    PVE安装后会默认将系统盘分出local和local lvm xff0c 但有时还需要别的硬盘作为虚拟主机的数据盘 xff0c 所以就需要添加硬盘进行扩充 一 硬盘分区 格式化 首先需要先先看下需添加硬盘的设备名称 xff0c 如下图的 d
  • 差分约束 解决区间选点问题

    题意 xff1a 给定一个数轴上的 n 个区间 xff0c 要求在数轴上选取最少的点使得第 i 个区间 ai bi 里至少有 ci 个点 input 输入第一行一个整数 n 表示区间的个数 xff0c 接下来的 n 行 xff0c 每一行两
  • 【已解决】Microsoft Visual C++ Redistributable is not installed

    Error 导入torch xff0c 提示报错 xff1a Microsoft Visual C 43 43 Redistributable is not installed this may lead to the DLL load f
  • 设置让Windows每天在指定时间自动关机

    其实我们的电脑是可以设置每天在指定的时间点自动关机的 xff0c 具体操作方法 xff1a 1 开打电脑 xff0c 点击电脑系统左下角windows图标 xff0c 选择 控制面板 并进入 xff1b 如图 2 在控制面板界面找到 管理工
  • 在 AlmaLinux 9安装Docker Compose

    首先先安装Docker 如何在 AlmaLinux 8 上安装和使用 Docker 检查Docker版本 docker version 安装Docker Compose sudo curl L 34 https github com doc
  • 使用python搭建一个简单的FTP服务器

    从配置文件获取访问FTP服务器目录的用户名 密码 span class token keyword from span pyftpdlib span class token punctuation span authorizers span
  • 更改win10系统C:\Users\中文用户名为英文用户名

    文章目录 前言一 打开注册表二 查找路径三 重启电脑四 将用中文名与英文名进行链接五 测试是否成功 前言 注意 xff1a 做之前请先浏览一遍 xff0c 做任何操作之前都建议不要直接就做 xff0c 先看一看文档中有哪些操作点是需要小心的
  • Cityscapes数据集的深度完整解析

    cityscapes数据集是分割模型训练时比较常用的一个数据集 xff0c 他还可以用来训练GAN网络生成街景图片 数据集下载和文件夹组成 xff1a 整个数据集包含50个欧洲城市 xff0c 5000张精细标注图像 标注位于gtFine文
  • 使用分支——处理Git merge 冲突

    使用分支 处理Git merge 冲突 版本控制系统就是负责管理来自于多个提交者 xff08 通常是开发者 xff09 之间的提交的 有时候多个开发者可能会编辑同一部分内容 一旦开发者A编辑了开发者B正在编辑的内容 xff0c 冲突就会产生
  • 纯手工解密几大在线js加密网站(1)

    0x0 开头 最近闲来无事 xff0c 来看一下目前网络上哪家加密工具的强度最高的 本人技术有限 xff0c 最终结果不能代表什么 xff0c 大家有遇到什么其他的js加密技术破解难题的 xff0c 也可以一起互相讨论 xff0c 也可以问
  • 纯手工解密几大在线js加密网站(3)

    0x0 开头 续接上章 xff0c 心血来潮想挨个破解一下各大js加密的网站 xff0c 了解一下现有的js加密的逻辑 0x1 介绍 Sojson支持js的不可逆混淆加密 xff0c 和很多高级的加密配置 xff0c 还增加了小白专用的一键