__stack_chk_fail问题分析

2023-05-16

一、问题

进程收到SIGABRT信号异常退出,异常调用栈显示__stack_chk_fail

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Pico/A7H10/PICOA7H10:10/5.5.0/smartcm.1676912090:userdebug/dev-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2023-02-23 10:39:19+0800
pid: 933, ppid: -1, tid: 5800, name: pvrmanager  >>> /system/bin/stationservice <<<
uid: 0
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'stack corruption detected (-fstack-protector)'
    x0  0000000000000000  x1  00000000000016a8  x2  0000000000000006  x3  000000731f60b4f0
    x4  0000000000808080  x5  0000000000808080  x6  0000000000808080  x7  0000000000000030
    x8  00000000000000f0  x9  9c790c62d7456e2d  x10 0000000000000001  x11 0000000000000000
    x12 fffffff0ffffffdf  x13 000002bd7a90a09e  x14 0031c42fbe3a7800  x15 0000000034155555
    x16 00000073a2b9fb38  x17 00000073a2b77d40  x18 000000731ea16000  x19 00000000000003a5
    x20 00000000000016a8  x21 00000000ffffffff  x22 00000073a47d949a  x23 00000000000003fb
    x24 000000731f60be20  x25 00000073a47d9000  x26 000000731f60b5b0  x27 00000000000003fc
    x28 00000000000003fc  x29 000000731f60b590
    sp  000000731f60b4d0  lr  00000073a2b295bc  pc  00000073a2b295e8

backtrace:
      #00 pc 00000000000895e8  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 02b3bc38eb77bdc99f28c0fc3f17de65)
      #01 pc 00000000000d7168  /apex/com.android.runtime/lib64/bionic/libc.so (__stack_chk_fail+20) (BuildId: 02b3bc38eb77bdc99f28c0fc3f17de65)
      #02 pc 0000000000037844  /system/lib64/libstationopticsservice.so (pvr::StationService::StationLogPrint(char*, int)+500) (BuildId: 9943b2f8208bbfbec5bb6dacaab00482)
      #03 pc 00000000000375a8  /system/lib64/libstationopticsservice.so (pvr::MCULogProcess::MCULogProcessFunc()+168) (BuildId: 9943b2f8208bbfbec5bb6dacaab00482)
      #04 pc 0000000000048b44  /system/lib64/libstationopticsservice.so (_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEMN3pvr13MCULogProcessEFvvEPS8_EEEEEPvSD_+60) (BuildId: 9943b2f8208bbfbec5bb6dacaab00482)
      #05 pc 00000000000ecce4  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: 02b3bc38eb77bdc99f28c0fc3f17de65)
      #06 pc 000000000008b064  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 02b3bc38eb77bdc99f28c0fc3f17de65)

二、分析

原因分析: __stack_chk_fail说明发生了缓冲区溢出,canary被破坏。这说明代码设置GCC编译选项fstack-protector,开启了栈保护机制canary,canary存放位置如下,如果func1函数中有越界操作,很可能会修改到canary,stack_chk_fail检测canary就会失败

反汇编后找到对应函数的汇编代码,定位到+500处

00000000000395f8 <_ZN3pvr14StationService15StationLogPrintEPci@@Base>:
   395f8:    a9ba6ffc     stp    x28, x27, [sp,#-96]!
   395fc:    a90167fa     stp    x26, x25, [sp,#16]
   39600:    a9025ff8     stp    x24, x23, [sp,#32]
   39604:    a90357f6     stp    x22, x21, [sp,#48]
   39608:    a9044ff4     stp    x20, x19, [sp,#64]
   3960c:    a9057bfd     stp    x29, x30, [sp,#80]
   39610:    910143fd     add    x29, sp, #0x50
   39614:    d11043ff     sub    sp, sp, #0x410
   39618:    d53bd058     mrs    x24, tpidr_el0
   3961c:    f9401708     ldr    x8, [x24,#40]
   39620:    b00001f9     adrp    x25, 76000 <configServiceClient@@Base>
   39624:    2a0203f4     mov    w20, w2
   39628:    aa0103f5     mov    x21, x1
   3962c:    f81a03a8     stur    x8, [x29,#-96]
   39630:    b944a336     ldr    w22, [x25,#1184]
   39634:    0b0202c8     add    w8, w22, w2
   39638:    7110051f     cmp    w8, #0x401
   3963c:    540001ab     b.lt    39670 <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x78>
   39640:    b00001e0     adrp    x0, 76000 <configServiceClient@@Base>
   39644:    91027800     add    x0, x0, #0x9e
   39648:    321603e2     orr    w2, wzr, #0x400
   3964c:    2a1f03e1     mov    w1, wzr
   39650:    9400cafc     bl    6c240 <memset@plt>
   39654:    b0ffff80     adrp    x0, 2a000 <gyroLSB@@Base-0x3e4c>
   39658:    91102000     add    x0, x0, #0x408
   3965c:    2a1603e1     mov    w1, w22
   39660:    2a1403e2     mov    w2, w20
   39664:    9400cacf     bl    6c1a0 <_Z8pr_debugPKcz@plt>
   39668:    2a1f03f6     mov    w22, wzr
   3966c:    b904a33f     str    wzr, [x25,#1184]
   39670:    b00001f3     adrp    x19, 76000 <configServiceClient@@Base>
   39674:    91027a73     add    x19, x19, #0x9e
   39678:    8b36c260     add    x0, x19, w22, sxtw
   3967c:    93407e82     sxtw    x2, w20
   39680:    aa1503e1     mov    x1, x21
   39684:    9400cb6f     bl    6c440 <memcpy@plt>
   39688:    b944a328     ldr    w8, [x25,#1184]
   3968c:    910003e0     mov    x0, sp
   39690:    321603e2     orr    w2, wzr, #0x400
   39694:    2a1f03e1     mov    w1, wzr
   39698:    0b14011c     add    w28, w8, w20
   3969c:    b904a33c     str    w28, [x25,#1184]
   396a0:    910003fa     mov    x26, sp
   396a4:    9400cae7     bl    6c240 <memset@plt>
   396a8:    7100079f     cmp    w28, #0x1
   396ac:    5400088b     b.lt    397bc <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1c4>
   396b0:    90ffff94     adrp    x20, 29000 <gyroLSB@@Base-0x4e4c>
   396b4:    f0ffff75     adrp    x21, 28000 <gyroLSB@@Base-0x5e4c>
   396b8:    aa1f03e8     mov    x8, xzr
   396bc:    aa1f03fb     mov    x27, xzr
   396c0:    91062294     add    x20, x20, #0x188
   396c4:    9108deb5     add    x21, x21, #0x237
   396c8:    aa1303f6     mov    x22, x19
   396cc:    8b1b0269     add    x9, x19, x27
   396d0:    3940012a     ldrb    w10, [x9]
   396d4:    7100295f     cmp    w10, #0xa
   396d8:    54000040     b.eq    396e0 <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0xe8>
   396dc:    3500038a     cbnz    w10, 3974c <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x154>
   396e0:    cb160137     sub    x23, x9, x22
   396e4:    f10006ff     cmp    x23, #0x1
   396e8:    5400030b     b.lt    39748 <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x150>
   396ec:    910003e0     mov    x0, sp
   396f0:    321603e2     orr    w2, wzr, #0x400
   396f4:    2a1f03e1     mov    w1, wzr
   396f8:    9400cad2     bl    6c240 <memset@plt>
   396fc:    910003e0     mov    x0, sp
   39700:    321603e1     orr    w1, wzr, #0x400
   39704:    321603e2     orr    w2, wzr, #0x400
   39708:    aa1403e3     mov    x3, x20
   3970c:    aa1503e4     mov    x4, x21
   39710:    940007d4     bl    3b660 <_ZN3pvr14StationService23set_camerafps_to_configE12camera_fps_t@@Base+0x114>
   39714:    93407c08     sxtw    x8, w0
   39718:    8b0802fc     add    x28, x23, x8
   3971c:    f110039f     cmp    x28, #0x400
   39720:    540004ec     b.gt    397bc <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1c4>
   39724:    8b080340     add    x0, x26, x8
   39728:    aa1603e1     mov    x1, x22
   3972c:    aa1703e2     mov    x2, x23
   39730:    9400cb44     bl    6c440 <memcpy@plt>
   39734:    910003e1     mov    x1, sp
   39738:    aa1403e0     mov    x0, x20
   3973c:    383ccb5f     strb    wzr, [x26,w28,sxtw]
   39740:    9400cb44     bl    6c450 <_ZN3pvr9pr_keylogEPKcz@plt>
   39744:    b944a33c     ldr    w28, [x25,#1184]
   39748:    91000768     add    x8, x27, #0x1
   3974c:    9100077b     add    x27, x27, #0x1
   39750:    93407f89     sxtw    x9, w28
   39754:    eb09037f     cmp    x27, x9
   39758:    8b080276     add    x22, x19, x8
   3975c:    54fffb8b     b.lt    396cc <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0xd4>
   39760:    b40002e8     cbz    x8, 397bc <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1c4>
   39764:    eb09011f     cmp    x8, x9
   39768:    540001ea     b.ge    397a4 <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1ac>
   3976c:    4b080388     sub    w8, w28, w8
   39770:    93407d02     sxtw    x2, w8
   39774:    321603e3     orr    w3, wzr, #0x400
   39778:    aa1303e0     mov    x0, x19
   3977c:    aa1603e1     mov    x1, x22
   39780:    b904a328     str    w8, [x25,#1184]
   39784:    321603f4     orr    w20, wzr, #0x400
   39788:    9400cb36     bl    6c460 <__memcpy_chk@plt>
   3978c:    b984a328     ldrsw    x8, [x25,#1184]
   39790:    2a1f03e1     mov    w1, wzr
   39794:    8b080260     add    x0, x19, x8
   39798:    cb080282     sub    x2, x20, x8
   3979c:    9400caa9     bl    6c240 <memset@plt>
   397a0:    14000007     b    397bc <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1c4>
   397a4:    b00001e0     adrp    x0, 76000 <configServiceClient@@Base>
   397a8:    91027800     add    x0, x0, #0x9e
   397ac:    321603e2     orr    w2, wzr, #0x400
   397b0:    2a1f03e1     mov    w1, wzr
   397b4:    9400caa3     bl    6c240 <memset@plt>
   397b8:    b904a33f     str    wzr, [x25,#1184]
   397bc:    f9401708     ldr    x8, [x24,#40]
   397c0:    f85a03a9     ldur    x9, [x29,#-96]
   397c4:    eb09011f     cmp    x8, x9
   397c8:    54000121     b.ne    397ec <_ZN3pvr14StationService15StationLogPrintEPci@@Base+0x1f4>
   397cc:    911043ff     add    sp, sp, #0x410
   397d0:    a9457bfd     ldp    x29, x30, [sp,#80]
   397d4:    a9444ff4     ldp    x20, x19, [sp,#64]
   397d8:    a94357f6     ldp    x22, x21, [sp,#48]
   397dc:    a9425ff8     ldp    x24, x23, [sp,#32]
   397e0:    a94167fa     ldp    x26, x25, [sp,#16]
   397e4:    a8c66ffc     ldp    x28, x27, [sp],#96
   397e8:    d65f03c0     ret
   397ec:    9400ca75     bl    6c1c0 <__stack_chk_fail@plt>

确实是__stack_chk_fail执行出现了问题

397ec: 9400ca75 bl 6c1c0 <__stack_chk_fail@plt>

再说一下,canary破坏很大可能是memset memcpy越界修改造成的,而且是栈中的变量,如下static概率就比较小,因为static变量不在栈中,所以,大概率是tmp这个数组

void StationService::StationLogPrint(char *buf, int len) {
#define STTAG "STLOG"
#define BUF_MAX_LEN 1024
    static char stlog[BUF_MAX_LEN] = {0};
    static int stlen = 0;
    station_debug_info_t buffer;
    memset(&buffer, 0, sizeof(buffer));
    buffer.type = (perf_test_t)STATION_LOG_INFO;

    if (stlen + len > BUF_MAX_LEN) {
        memset(stlog, 0, BUF_MAX_LEN);
        pr_debug("STLOG: stlen:%d, len:%d, err, drop!", stlen, len);
        stlen = 0;
    }
    memcpy(stlog + stlen, buf ,len);
    stlen += len;

    char tmp[BUF_MAX_LEN] = {0};
    char *p1 = stlog;
    char *p2 = p1;

    for (int i = 0; i < stlen; i++) {
        if ('\n' == *(stlog + i) || '\0' == *(stlog + i)) {
            p2 = stlog + i;
            if ((p2 - p1) > 0) {
                memset(tmp, 0, sizeof(tmp));
                int l = snprintf(tmp, sizeof(tmp), "%s", STTAG);
                if (l + (p2 - p1) > BUF_MAX_LEN) {
                    return;
                }
                // pr_err("01%s, l:%d, len:%d, stlen:%d, (p2 - p1):%d", __FUNCTION__, l, len, stlen, (p2 - p1));
                memcpy(tmp + l, p1, (p2 - p1));
                l += p2 - p1;
                tmp[l] = '\0';
                pr_keylog("%s", tmp);
            }
            p1 = p2 + 1;
        }
    }
    if (p1 == stlog) {
        return;
    }
    if (p1 - stlog >= stlen) {
        memset(stlog, 0, sizeof(stlog));
        stlen = 0;
    } else {
        stlen -= p1 - stlog;
        memcpy(stlog, p1, stlen);
        memset(stlog + stlen, 0, sizeof(stlog) - stlen);
    }
}

所以大概率问题出现在32行的memcpy,p2-p1可能越界了,因为tmp与stlog大小一样,tmp在开头加了一断字符,p2-p1+l

很有可能大于BUF_MAX_LEN,造成越界访问。

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

__stack_chk_fail问题分析 的相关文章

  • 有没有办法将 Knuth shuffle 应用于 Stack 数据结构?

    对于编程课 我正在为第一个家庭作业创建一个二十一点程序 教授给了我们一个示例 Card 类 其中包括将它们添加到牌组中的方法 对于她的牌组 她使用 ArrayList 您可以使用 Collections shuffle 方法轻松地进行 Kn
  • React Native:类型错误:未定义不是对象(评估“this.props.navigation.navigate”)

    作为反应原生的初学者 我无法找出代码中的问题 通过在互联网上阅读 我知道我可能遇到一些具有约束力的问题 因此 我的代码从 index js 开始 并在那里注册 App 组件 应用程序组件仅包含堆栈导航路线 它加载 LoginScreen 组
  • 如何在字符串中找到匹配的大括号对?

    假设我有一个字符串 付费 8个工作时间 公司规则 现在我想检查这个完整的字符串是否用括号括起来 基本上我想检查字符串是否是这样的 付费 8个工作时间 公司规则 如果它已经用括号括起来 那么我将保留它原样 否则我会将括号应用于完整的字符串 以
  • 为什么 Java Vector(和 Stack)类被认为已过时或已弃用?

    为什么 Java Vector 被视为遗留类 已过时或已弃用 在处理并发时它的使用不是有效的吗 如果我不想手动同步对象 只想使用线程安全集合 而不需要制作底层数组的新副本 如CopyOnWriteArrayList是 那么可以使用吗Vect
  • 从另一个应用程序启动时,应用程序将失去记住其堆栈的能力

    现在我已经对此进行了更多研究 我写这篇文章是为了让它更清楚 如果您正在寻找更多信息 可以在旧版本中找到一些信息 怎么了 这是指没有设置任何launchMode的应用程序 设置 因此使用默认值 您可以从市场或安装程序启动应用程序 这 启动应用
  • 设计一个也可以在 O(1) 摊余时间内出队的堆栈?

    我有一个抽象数据类型 可以将其视为从左到右存储的列表 具有以下可能的操作 推送 将新项目添加到列表的左端 Pop 删除列表左端的项目 Pull 删除列表右端的项目 使用三个堆栈和恒定的附加内存来实现此目的 以便任何推入 弹出或拉出操作的摊销
  • Linux 内核如何强制堆栈大小限制?

    我知道堆栈大小可以通过限制工具进行控制 但是内核如何强制执行其中一些限制 例如 RLIMIT STACK 由于linux不涉及堆栈操作 只是mov或push指令 那么当超出限制时内核如何发出SIGSEGV 据我了解 对于虚拟寻址 CPU 提
  • ARM GCC 生成函数序言

    我提到 ARM 工具链可以生成不同的函数序言 实际上 我看到两个 obj 文件 vmlinux 具有完全不同的函数序言 第一种情况如下所示 push some registers maybe fp lr lr ommited in leaf
  • 函数内声明的 const 数组是否存储在堆栈中?

    如果这是在函数中声明的 它会在堆栈上声明吗 它是 const 让我想知道 void someFunction const unsigned int actions 8 e1 e2 etc 是的 它们在堆栈上 您可以通过查看此代码片段来了解这
  • 左结合性仅适用于 Postfix 表达式吗?

    在计算后缀表达式时 关联性是否总是从左到右 如果是 为什么 如果没有 为什么 None
  • 有意的缓冲区溢出并不总是导致程序崩溃

    考虑以下最小 C 程序 案例编号1 include
  • Excel VBA 的 LIFO(堆栈)算法/类

    我正在寻找在 Excel 的 VBA 中实现 Stack 类 我想使用后进先出结构 以前有人遇到过这个问题吗 你知道外部库处理结构 如 Stack Hastable Vector 除了原始的 Excel Collection 等 Thank
  • 缓冲区溢出攻击(攻击实验室第 2 阶段)

    我有一个缓冲区溢出实验室 我必须为一个名为攻击实验室 http csapp cs cmu edu 3e attacklab pdf 我处于实验室的第二阶段 我必须将代码作为漏洞利用字符串的一部分注入 以使程序指向函数 touch2 的地址
  • ValueType 堆栈空间耗尽

    我的理解是 Net中的每个新线程都会分配1MB 堆栈空间 https stackoverflow com questions 4088448 the net stack vs windows stack 进一步我的理解是 值类型存储在堆栈上
  • 为什么在函数堆栈上返回值不安全

    我在阅读 bruce eckel 时遇到了以下段落 他试图解释为什么函数在堆栈上返回值不安全 现在想象一下如果一个普通函数尝试在堆栈上返回值会发生什么您不能触及返回地址上方堆栈的任何部分 因此该函数必须将值推入返回地址下方 但是当执行汇编语
  • Bluecove:以编程方式重新启动蓝牙堆栈

    我正在尝试关闭蓝牙服务 但 Bluecove 在连接关闭方法上有错误 https code google com p bluecove issues detail id 90 https code google com p bluecove
  • C 中的递归深度是否有任何硬连线限制

    正在讨论的程序尝试计算sum of first n natural numbers using recursion 我知道这可以使用一个简单的公式来完成n n 1 2但这里的想法是使用recursion 程序如下 include
  • std::stack 是否公开迭代器?

    是否std stack在 C STL 中公开底层容器的任何迭代器 还是应该直接使用该容器 根据堆栈的定义 堆栈没有迭代器 如果您需要带有迭代器的堆栈 则需要自己在其他容器 std list std vector 等 之上实现它 堆栈文档在这
  • 使用javascript对堆栈元素进行排序

    我试图理解使用递归对堆栈元素进行排序http www geeksforgeeks org sort a stack using recursion http www geeksforgeeks org sort a stack using
  • NOP 雪橇如何工作?

    我找不到回答这个问题的好来源 我知道 nop sled 是一种用于规避缓冲区溢出攻击中堆栈随机化的技术 但我无法理解它是如何工作的 有什么简单的例子可以说明这种方法 128 字节 nop sled 等术语是什么意思 有些攻击包括使程序跳转到

随机推荐

  • MiroTik 路由器配置无线中继模式(超细教程)

    关于MikroTik 看一下百度百科中关于MikroTik的介绍吧 MikroTik成立于1995年 xff0c 总部位于拉脱维亚首都里加 xff0c 主要从事开发路由器和无线ISP系统 1997年RouterOS系统 xff0c 2002
  • springmvc项目,启动报错Context initialization failed

    错误描述如下 xff1a springmvc项目 tomcat启动报错 Context initialization failed org span class token punctuation span springframework
  • Spring 总结(学习+面试)

    Spring学习笔记 文章目录 Spring学习笔记1 0 概述1 1使用Spring框架的好处1 2特点 2 0体系结构3 0创建Spring java工程 xff08 eclipse xff09 4 0通过Spring创建对象的方式5
  • tomcat启动,报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]

    严重 RMI TCP Connection 3 127 0 0 1 org apache catalina core ContainerBase addChildInternal ContainerBase addChild start o
  • chrome扩展:manifest.json文件详解

    manifest json是扩展的配置文件 xff0c 指明了扩展的各种信息 一个manifest json格式如下 xff1a 必须的字段 3 个 34 name 34 34 MyExtension 34 扩展名称 34 version
  • 检测链表中是否存在回环(Java 版)

    检测链表中是否存在回环 xff0c 这里介绍两种方法 xff1a 快慢指针 xff1b HashSet 存储原理 xff1b 1 快慢指针 快慢指针检查 xff0c 就是定义两个指针 xff0c 一个走的快 xff0c 一个走的慢 xff0
  • 通过http接口进行批量post操作(json格式)

    通过 64 Test或者main方法来进行 相关依赖 poi lt dependency gt lt groupId gt org apache poi lt groupId gt lt artifactId gt poi lt artif
  • spring容器初始化bean后执行方法

    有时 xff0c 我们需要在启动bean时初始化bean属性 xff0c 例如读取perporties文件 xff0c 对属性进行赋值 xff1b 启动容器时让某个method方法执行等等 这时需要在进行配置 xff0c 让bean在注入时
  • 4个简单有效的网页视频下载方法,超级简单好用

    有很多网站的视频是没有下载功能的 xff0c 想要下载视频怎么办呢 xff1f 今天就分享给大家4个简单有效的网页视频下载方法 xff0c 多个平台都适用 xff0c 而且操作简单 xff0c 一看就会 xff01 一 审查元素下载 一个简
  • iptables详解

    5链 INPUT OUTPUT PREROUTING FORWARD POSTROUTING INPUT OUTPUT gt PREROUTING gt 是否为本机 gt FORWARD gt POSTROUTING gt 其他主机 所以
  • 浅谈一致性哈希算法 consistent hashing

    接触过分布式的小伙伴一定对一致性哈希算法这个词语不陌生 xff0c 那么到底什么是一致性哈希算法呢 xff1f 了解一致性哈希算法之前我们先了解下哈希取模 假设我们有三台服务器 xff0c 缓存3万张图片 当然我们可以均匀的分配到每个服务器
  • ubuntu20.04启用SSH

    新安装的ubuntu20 04默认是没有开启ssh的 xff0c 所以无法使用ssh登录系统 1 安装openssh server span class token function sudo span span class token f
  • 密码生成器

    import random def Range get num alist listout 61 while num gt 0 listout append alist random randint 0 len alist 1 num 61
  • centos7安装oracle中遇到的常见问题解决方法

    1 安装图形界面 yum y install gnome 2 安装vnc server yum y install vnc server vncpasswd 设置密码 vncserver启动vnc windows安装vnc客户端客户端 通过
  • java中keytool生成的jks证书转换为openssl格式证书

    一 通常jks文件包含了服务器的私钥 server key xff0c 服务器证书 server crt 根证书 ca crt 二 通过java的keytool工具导出成 PKCS12 格式文件 my p12 keytool importk
  • IBMX3650M4安装win2008Server操作指南

    IBMX3650M4安装win2008Server操作指南 由于IBM服务器是IBM原有的Linux系统 xff0c 所以需要在此硬件上安装Win 2008 Server系统 xff08 以下简称win8 xff09 xff0c 中间遇到了
  • windows远程桌面连接到服务器黑屏问题

    任务管理器使用组合键 Ctrl 43 Alt 43 End xff0c 于是打开了远程电脑的任务管理器 xff0c 取消 xff0c 即可返回桌面正常显示
  • p2p数据分析

    大数据在许多国家具有战略意义 xff0c 其原因不仅在少数巨头公司的应用 xff0c 而是大 中 小 微企业乃至个人 xff0c 都能利用大数据来创造新的价值 而互联网本身就是一个大数据的金矿 xff0c 利用它创造价值 xff0c 是时代
  • 关于The GPG keys listed for the "***" repository are already installed but they are not corret

    这个问题是在自己制作的repo源码库的时候出现的 xff0c 从字面上理解 xff0c 是 为 源码仓库出示的GPG密钥已经安装 xff0c 但不正确 首先 xff0c GPG密钥存在的目的是处于安全和规范考虑 xff0c RedHat在发
  • __stack_chk_fail问题分析

    一 问题 进程收到SIGABRT 信号异常退出 xff0c 异常调用栈显示 stack chk fail Build fingerprint 39 Pico A7H10 PICOA7H10 10 5 5 0 smartcm 16769120