自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技海淘金

会者牛毛,能者亦不寡,然精者殊,而独领风骚者则凤毛麟角!

  • 博客(104)
  • 资源 (2)
  • 收藏
  • 关注

原创 Windows DLL导出符号方法

经典的做法时使用一个模块定义文件来定义导出符号。参考我之前的一篇文章:​​​​​​VC2008如何生成及使用DLL_技海淘金-CSDN博客这个方法对于C语言实现的DLL是比较方便的。但是,如果是C++,想要导出类,通过模块定义文件的方式,我没有找到比较好的办法。于是这里介绍第二种导出符号的方法:在头文件里定义:#if defined LIBP2_EXPORTS#define LIBP2_API __declspec(dllexport)#else#define LIBP2_A

2021-11-04 12:31:34 1875

原创 使用OpenCV关闭USBCamera的自动白平衡

目录前言背景知识opencv里的属性set和get实现dshow接口参考改造opencv1. 增加一个自动白平衡的属性定义2. 在属性的get接口里添加读自动白平衡的实现3. 重新编译opencv后即可通过属性:4. 使用示例前言本文的方法是在Windows平台上,opencv_3.4.14版本上实施并验证OK的。VC环境下,在opencv里,通过设置属性“CV_CAP_PROP_WHITE_BALANCE_BLUE_U” 可以达到设置白平衡值的目的...

2021-10-11 20:08:27 1523

原创 raw.githubusercontent.com 地址解析错误解决办法

背景某个开源项目的build.gradle中,有一个github的raw源:maven { url 'http://raw.github.com/saki4510t/libcommon/master/repository/' }Android Studio编译时,出现DNS解析错误的问题。错误描述Unknown host '请求的名称有效,但是找不到请求的类型的数据。 (raw.githubusercontent.com)'. You may need to adjust the p

2021-09-23 11:29:19 26561 1

原创 解决Arduino DUE的程序必需Reset才能启动的问题

问题现象Arduino DUE,下载程序后,哪怕是几个简单的串口输出测试程序,也会在断电后第一次开机时无法启动。必需手动按Reset,或者重新插拔一下USB来重新上电一下才能启动。问题原因具体原因未明,单据往上查到的记录,可能时SAM3X这颗CPU在开机时收到脏数据导致其一直在下载模式里退不出来。解决办法在主CPU(ATSAM3X)的RESET脚(Reset按键的一个引脚)和GND之间,加一个10uF的电容即可。踩过的坑一开始怀疑ATMEGA16U2的固...

2021-04-02 19:31:09 1598

原创 使用Arduino UNO烧录ATMETA16U2

0. 前言因某种原因需要更新我的Arduino DUE上面的USB转串口的芯片ATMEGA16U2里的固件,找了很多资料,下面是操作步骤,记录一下,方便后续查找:1. 用Arduino UNO制作一个烧录器准备一块Arduino UNO的正常主板,用ArduinoIDE烧录一个示例程序:ArduinoISP这块Arduino UNO主板就变成了一个AVR烧录器(ArduinoISP)了。2. 准备命令行烧录工具在ArduinoIDE的安装目录下找到avrdude程..

2021-03-29 16:07:23 2956

原创 STM32从零开始 - 第三章:从串口输出HelloWorld

目录前言串口初始化重定向C库的printf函数到串口在main中添加测试代码完整的main.c代码编译下载程序效果扩展实验1:格式化字符串输出扩展实验2:串口输入前言本章我们将使用STM32官方BSP中的串口驱动,在串口上输出HelloWorld。从串口输出HelloWorld的方法1. 简单的将HelloWorld这个字符串从串口里输出。2. 可以将C库的printf输出重定向到串口上本章我们使用第2种方法,因为第一种方法有太多的参考..

2020-11-29 23:50:40 1950 3

原创 STM32从零开始 - 第二章:LED闪烁程序

概述这一章中,我们基于之前用STM32CubeMX产生的项目,使用STM32CubeIDE环境来开发一个LED闪灯的简单程序。打开默认项目先打开STM32CubeIDE,选择File -> Open Projects from File System:点击Dirctory选择之前用STM32CubeMX产生的工程目录。然后点击Finish按钮即可。找到main函数在左侧的项目浏览窗口中,找到刚刚打开的项目,在src/main.c中能找到main函数入

2020-11-17 00:44:06 5972

原创 STM32从零开始 - 第一章:开发环境STM32Cube套件

概述STM32的开发环境并不唯一。如果你习惯KEIL开发环境,可以用KEIL环境来开发,虽然代码编辑不太方便,但调试跟踪非常方便。如果你更熟悉gcc/makefile,则可以自己写makefile来搭建自己的脚本编译环境。代码编辑器个人还是推荐SourceInsight或者VSCode效率更高。STM32Cube套装我们要使用的不是上面两个,而是用ST官方维护和推荐的开发工具包:STM32Cube这套工具包含了:STM32CubeMX 这个工具用来根据项目配置产生初始B.

2020-11-16 23:47:37 1793 1

原创 找到弹窗广告所在的程序文件位置

一个天猫双11,一个黑色星期五,各种牛鬼蛇神的流氓软件都搞广告弹窗。弹窗也就算了,任务栏里还没有内容,找不到是谁弹的广告。。。。。白嫖也就算了,还不留名这就过分了,怕我删你就别乱弹广告啊。必需收拾这些流氓软件,不能手软!1. 祭神器下载一个来自微软的工具Process Explorerhttps://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer解压后,双击执行这个工具2. 找到弹广告窗的坏

2020-11-11 17:24:59 10646 9

原创 STM32从零开始 - 前言:硬件准备

下面列出此课程中涉及的硬件主板及参考的购买链接。可以自行选择店铺购买,只要参数一致即可。1. STM32F103C8T6 开发板https://item.taobao.com/item.htm?spm=a1z09.2.0.0.14e02e8daDrLMv&id=591061494821&_u=61bg9vk3c54这是STM32平台的一个典型开发板,后续的课程都是使用这个开发板来进行学习和实验。2. 1.44寸SPI接口TFT显示屏...

2020-11-11 00:42:08 594 2

原创 微软蓝牙鼠标3600拆解

电池仓里的标签上能找到鼠标的具体型号。Bluetooth Mobile Mouse 3600Model: 1730此鼠标没有螺丝,一个都没有,鼠标垫脚及标签下都没有螺丝孔,全靠卡口完成组装咬合。拆开后的情况:黄色框出的区域就是关键的卡口,从鼠标的尾部开启,用一字螺丝刀从电池仓靠近尾部中间的位置探进去可以将上盖上的卡口顶开,然后就能打开上盖了。这是拆开上盖后,从电池仓里可以看到这个卡口孔的位置。没有拆开顶盖的时候,不容易看到这个卡口,需要仔细找对角度才能看到,对照上面那

2020-09-08 11:20:01 6209

原创 Android9 Sepolicy规则基础 - MTK平台

1. SELinux的基础原则默认拒绝原则 - 任何未经明确允许的行为都会被拒绝(即:白名单制)2. SELinux的两种执行模式宽容模式 - 权限拒绝事件会被记录下来,但不会被强制执行。(权限不够时,仅警告)强制模式 - 权限拒绝事件会被记录下来并强制执行。(权限不够时,拒绝执行)3. SELinux在安卓平台上的演变低于安卓4.3 - 默认不支持SELinu...

2020-02-29 13:15:11 4740

原创 关于pattern的翻译

"pattern" 在各种编程书籍中被翻译为模式。实际上,在中文中有一个更合适的词:套路Design Pattern:设计套路23 classic software design patterns: 23个经典软件设计套路是否这样翻译更为直观接地气呢^_^...

2020-02-07 14:34:27 1246

原创 Windows下检查exe文件的依赖关系

由于工作需要,有时会实用VisualStudio或Cygwin的gcc编译小的exe程序。自己使用倒是没什么大问题,但有时候将exe程序提供给别人使用是,由于对方的系统环境比较“纯净”,没有vs,也没有cygwin,程序可能出现无法正常启动的情况。这里分享一个小技巧来检查exe程序到底依赖哪些DLL,我们将程序外发的时候,只要将这些DLL文件也放在一起就可以了。对于VC编译的程序,使用...

2019-10-29 15:34:46 2335

原创 金融POS设备中涉及的一些标准

本文将我所知的在金融POS上涉及到的标准罗列出来,方便查询,也方便新入门者参考。水平有限,如有错漏,望海涵,并请不吝赐教!金融POS涉及的技术标准标准文档 简单说明 ISO7810 ISO7811 ISO7812 ISO7813 磁条卡相关国际标准 ISO7816 IC卡相关国际标准 ISO14443 非...

2019-09-15 22:56:48 1987 2

原创 解决Win10系统msconfig配置错误后无法启动的问题

背景故事按百度搜出来的某篇经验,通过msconfig设置了启动参数。https://jingyan.baidu.com/article/414eccf6b5a9646b421f0a5f.html然后重启后Win10不能正常启动了。之后自动修复也没办法修改,系统也没有设置还原点。安全模式也没办法进入。倒是可以进入命令行模式,但在命令行模式里打不开msconfig,也没办法修改msco...

2019-07-22 15:32:12 20765 12

原创 Ubuntu 18.04安装Android 5.1系统编译环境

基础环境基础环境的安装,需要参考《重装Ubuntu13.04后需要做的事情》一文。OpenJDK7Android 5.1需要使用OpenJDK7编译,但Ubuntu18.04默认的环境是OpenJDK8。需要参考一下博客里的方法来安装OpenJDK7:https://blog.csdn.net/cwh250/article/details/81948610需要注意的是几个d...

2019-06-17 01:15:20 2036 1

原创 Win10如何获取程序自己的版本号

前言之前写过一篇博文,《VS2010获取程序自身的版本号》近期开发的一个应用,发现在Win7下正常,但到了Win10下,无法获得正确的版本号。跟踪后发现问题出在这里:GetFileVersionInfoSize这个接口在Win7下正确返回,但在Win10下返回错误。获取资源中版本号的新方法不想深究Win7和Win10系统处理这个API有什么区别了,于是换了一种方...

2019-05-29 11:19:13 703

原创 LittleFS移植实践

LittleFS移植实践前言相关资料链接先吐为快移植的要点块设备接口对struct lfs_config的说明read 接口解读prog接口解读erase接口解读关于动态内存前言LittleFS是ARM mbedOS的官方推荐文件系统,具有轻量级、掉电安全的特性。相关资料链接开源项目:https://github.com/ARMmbed/littlefs文档:开源项目中的README....

2019-02-19 22:00:43 11336 3

原创 CMAKE用法示例

CMAKE用法示例命令行相关示例使用cmake创建目录在命令行中传入CMAKE变量让cmake使用指定的编译工具链让cmake产生Unix Makefile以4线程编译目标CMAKE脚本相关示例指定最小的cmake版本号输出日志定义工程名及工程使用的语言类型定义语言标准定义一个变量判断一个变量没有被定义判断一个变量内容与特定的字符串相等设置可执行程序后缀名设置静态库的默认前缀(没有lib)添加编译...

2019-02-19 15:46:12 1936

原创 RSA算法浅见

对RSA算法有些简单的看法,作为总结,也希望能为初学者提供一点参考。 1. 公钥和私钥公钥由两部分组成: (e, n)私钥也有两部分组成:(d, n)e: 公有指数,是一个比较小的素数,比如:3, 7, 11,65537d: 私有指数,是一个大素数,位数与n一致,如1024位或2048bitn: 模,也叫合数,是一个大整数,它的位数就是RSA密钥的强度,如1024bit...

2018-08-07 18:05:10 1917

原创 Windows常用批处理命令示例

关闭命令行回显:@echo off获取批处理所在的目录:@set SRC_ROOT=%~dp0建立标号::here跳转到标号:goto here执行命令而不显示命令的输出:@commandx判断前一个命令的执行结果:@IF "%ERRORLEVEL%"=="0" (@ECHO.) ELSE (@goto fail)打印空行:@echo.延时15秒:@echo Wscript.Sleep W...

2018-03-10 20:20:15 614

原创 2017年度工作大事记

1. 作为主要参与人之一,完成了K21平台上两个项目的PCI-PTS-POI认证    - 第一次出国,到荷兰与安全实验室沟通支持项目安全相关的认证    - 系统化了解PCI-PTS-POI认证的安全规则及玩法    - 成功的去除了对实验室的神秘感2. 作为主要负责人及参与人之一,完成了MAX32555平台的SP开发工作及这个平台上两个项目的PCI-PTS-POI认证

2017-12-31 21:59:41 972

原创 APK签名流程详解

本文最好对照我的APK签名解析示例进行阅读.示例中的关键文件说明:keys - 存放签名公私钥的目录signed_logcat.apk - 已经使用keys目录中的密钥签名后的apksigned_logcat - signed_logcat.apk解压出来的内容sign.cmd - 对apk签名的批处理命令signapk.jar - java版本的apk签名工具

2017-11-29 19:02:36 7693

原创 VC2010使用openssl-1.1.0f静态库时链接报错

编译报错内容:1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertFreeCertificateContext@41>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertGetCertificateContextProperty@161

2017-11-29 14:09:08 12351 11

原创 openssl-1.1.0f VC编译方法

1. 安装好VS2010版本2. 下载OpenSSL代码3. 安装NASM4. 参考说明文件NOTES.WIN5. 管理员权限打开命令行6. 执行以下命令以安装编译环境:set path=C:\Perl5.16.3\bin;%path%set path=C:\Program Files (x86)\NASM;%path%set path=C:\Pro

2017-11-29 13:57:21 1130

原创 ASN.1, DER, PEM, X509

ASN.1是一个语言标准,可以与C语言进行类比,ASN.1的主要用途是描述数据结构,而C语言的主要用途则是控制程序走向。使用ASN.1可以描述复杂的数据对象。比如:一块数据中,哪里是长度,哪里是内容,哪里是标志等(类似C语言的struct)。使用ASN.1描述的数据结构,需要具象化,也就是编码。ASN.1有多种不同的编码实现,BER,CER,DER等,其中DER是最见的一种

2017-11-21 14:26:46 5698

原创 VS2010获取程序自身的版本号

在程序的标题栏中显示版本号有助于用户快速了解自己所用程序的版本。在关于对话框中也会显示程序的版本号。在资源文件中设置好版本信息后,可以在程序的属性中查看到程序的版本信息。改个版本号至少要修改3个地方,太麻烦了。可以用下面的方法直接读出程序的版本号,将版本号用程序控制显示在标题栏以及关于对话框中。之后只需要改资源文件中的版本号这一个地方就行了,再也不会出现改了这个地方忘了

2017-11-20 10:38:44 5148 2

原创 Python hexstring-list-str之间的转换

在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:hexstring- 如:'1C532145697A8B6F'str - 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'list- 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]各种第三方模块(如pyDes),或者自己写的接

2017-05-15 10:55:37 13148 3

原创 HEX2BIN在WIN7下不能用之后

之前的开发环境一直在WINXP下,有一个工具HEX2BIN.exe,最初也不知道哪里来的,反正是没有源码的了。开发环境换成了WIN7后,其他工具都没大问题,唯独这个HEX2BIN怎么都不能在WIN7环境下运行,各种找,终于找到一个简单直接的办法:在Cygwin及Linux环境下,使用objcopy工具即可:HEX2BIN:objcopy -I ihex -O binary xx

2017-03-08 17:20:42 3925

原创 Android为动态枚举设备ttyUSB0提权

在系统中存在这样的设备:通常情况下,这个设备不存在,只有在特定情况下才会出现。比如:ttyUSB0, 只有在插入USB转串口的OTG设备后才会出现。对于这样的设备,默认是没有写权限的。如果有root权限,使用命令:chmod 0666 /dev/ttyUSB0即可赋予其写权限。但是,对于产品来说,你不能要求用户或第三方开发人员每次去输入一个命令,而且,最

2016-05-17 15:42:37 6057

原创 Andorid官方资源

1. 编译环境http://source.android.com/source/requirements.html2. 系统架构http://source.android.com/devices/index.html3. 调试手法http://source.android.com/devices/tech/debug/index.html

2016-05-06 18:41:24 626

原创 重装Ubuntu13.04后需要做的事情

注:本文的配置方法同样适用于Ubuntu14.04版本。1. 搭建Android 编译环境sudo apt-get updatesudo apt-get install -y git gnupg flex bison gperf build-essentialsudo apt-get install -y zip curl libc6-dev libncurses5-dev:i386 x11pr

2016-04-13 15:33:07 677

原创 如何在64位安卓系统中使用32位SO库

背景知识:对于64位系统的编译规则,可参考:http://source.android.com/source/64-bit-builds.html关键点:JAVA编译不分32bit和64bit(APK,JAR) - 可执行文件,默认编译64位 - 动态库和静态库,默认同时编译32bit和64bit版本 - 通过LOCAL_MULTILIB可以指定特定模块编译32bit或64bit或都编译 -

2016-04-11 14:49:42 21192

原创 Ubuntu下的Notepad++

Ubuntu下的Notepad++: notepadqq....适合从Win平台转移到Linux平台的用户.如果你之前一直再Win下使用nodepad++, 推荐你再Linux下尝试一下这个编辑器: notepadqqnotepadqq的介绍页面: http://itsfoss.com/notepadqq-notepad-for-linux/Ubuntu下的安装方法

2015-05-12 14:19:21 6807 1

原创 Ubuntu 15.04 Android编译环境

大部分都与13.04及14.04没有区别:参考: 重装Ubuntu13.04后需要做的事情需要注意的是两个问题:1. JAVA环境会报错sudo apt-get remove jayatana将这个玩意删除后JAVA环境检查报错的问题解决.2. make工具被升级make工具需要自己下载3.81版本,自己编译安装.再这里下载3.81版本的gn

2015-05-06 12:16:00 2772

原创 python实现的Caesar加解密算法

Caesar算法是最简单的加解密算法...# Caeser Cipherimport sys,osMyCypher = 25MyDict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz `1234567890-=~!@#$%^&*()_+[]\\;\',./{}|:"<>?'plaintext = 'Hel

2015-05-04 12:41:30 3391

原创 使用grep快速定位代码位置

有时候临时修改代码时,我们不需要或者没有条件使用复杂的代码编辑器。此时使用普通的文本编辑器如nano或vim,加上grep命令即可快速定位并修改代码。例如,在kernel目录下搜索 CONFIG_BOARD_S3C4410_XXX 内容:grep -nrE 'CONFIG_BOARD_S3C4410_XXX' kernel参数说明:n - 输出行号r - 遍历E

2015-03-06 20:48:50 3474

原创 FAT格式磁盘镜像制作方法

工作中需要制作一个名为udisk.bin的文件。此文件是一个FAT格式的磁盘分区的镜像文件,大小为20MB。对于FAT文件格式,制作一个2GB的FAT镜像就会有2GB大小,但由于只是一个空文件系统(其中并没有存储具体的文件),其中有意义的只有前面一部分,包括引导记录以及FAT表所在的部分,所以实际上前20MB就能表示整个FAT文件系统了。以制作1GB大小的udisk.b

2015-03-06 20:41:45 3699

原创 Linux man系统使用基础

man系统是linux下强大的帮助系统,能提供给系统用户,程序员几乎所有的帮助信息。这些帮助信息主要来自于Linux开源世界众多的文档维护者的无私贡献。man系统本身有一些基本的使用技巧,摘录如下:1. 打开xxx的帮助信息man xxx2. 查看某shell命令的帮助信息man 1 xxxman将所有的帮助信息进行了分类,各个分类使用数字来标记:

2015-03-06 20:30:31 1197

APK签名解析示例

讲解APK签名的一个示例,对应文章: http://blog.csdn.net/diaoxuesong/article/details/78668659 《APK签名流程详解》

2017-11-29

CharCodec.exe

到处没找到适合自己用的,于是花了点时间自己写了一个。 用途:可将Unicode字符串转换为Hex串,也可将Hex串反转为Unicode字符串

2009-12-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除