- 博客(50)
- 资源 (604)
- 收藏
- 关注
转载 bash的内建命令列表
前言在linux控制台执行命令,都要经过bash解释执行。命令分为磁盘命令和内建命令。磁盘命令是在系统路径上存在的elf可执行文件. e.g. netstat, ps内建命令是在bash内部实现的命令应答. e.g. cat, type临时在bash改版中,加了一个函数,将内建命令列表打出来,以后可以用。毕竟bash内建命令也是挺多的,谁能记得住
2019-04-23 15:28:34 574
转载 bash源码的调试方法
前言改了一版bash, 给同事用了好长时间,现在需要再加点东西,突然发现gdb附加后,不能正常调试输入的shell命令了。在原版上试一下, 是能单步源码调试的。那可能是改版的bash, 在处理用户输入命令之前,在处理过程中,又自己执行了shell命令去干其他活,建立了bash子进程引起不能有效调试的。记录一下原版bash单步调试的过程。实验将bash-4.4.tar.gz上传到debi...
2019-04-22 17:24:39 522
转载 使用javah生成jni本地方法头文件
前言不知道往Markdown编辑器里贴了点啥(贴了一些从CMD窗口 dir /s/b的结果),居然挂掉了… 重新打开chrome, 点击写新文章,博客缓存也载入不进来,一直显示等待博客站点的响应… 害的我换个浏览器重新总结 :(做了试验,搞清楚了用javah生成jni本地方法头文件的方法. 看了别人做的试验,和自己的情况也有一点小不一样.实验记录建立一个android工程,
2019-04-22 10:37:50 255
转载 CryptAPI对称加密的例子
前言看见一个Demo中有使用CryptAPI加密的代码. 查了资料,先写一个能用的CryptAPI加密例子, 预测一下Demo中的CryptAPI的调用流程. 等还原玩,如果Demo写的有特色, 再整理一个Demo玩.试验// @file rsaEncrypt\hw.cpp//#include "stdafx.h"#ifndef _WIN32_WINNT
2019-04-22 10:36:09 286
转载 linux0.12 - boot.s
前言bochs环境搭好了, 换个0扇区的代码,看看在bochs和U盘上是否都能正常运行。编译boot.s!! @file D:\ls\study\linux_prj\old_linux\src\3.1.2\boot.s! @brief!! 编译环境: debian9.6! 系统自带的as, ld无法编译16位的boot代码!! 安装as86, ld86! apt-get in...
2019-04-22 10:29:58 247
转载 e2fsprogs - debugfs
前言debugfs是e2fsprogs安装后的工具,这个工具的参数好多,而且是交互式输入命令,不是带参数执行完就了事。实验先用fdisk确定要操作的磁盘root@localhost:/home/e2_install/sbin# fdisk -lDisk /dev/sda: 120 GiB, 128849018880 bytes, 251658240 sectorsUnits: sec...
2019-04-22 10:28:18 898
转载 3DES encrypt by java, decrypt by c++
前言同事用3DES加密了一个字符串,让我用C解密试试. 试了一下,解不开. 自己搭个java控制台环境, 开始做实验. 将java用3DES加密, c/c++用3DES解密的实验. 现在加解密流程都跑通了. 对称加密算法中,影响加解密的因素有 : * 算法实现(e.g. 3DES, AES) * 密钥(自定义的加解密口令) * 初始化向量(简称为I
2019-04-22 10:26:47 982
转载 3DES crypt helper
序今天同事让写一个DLL给他,3DES+BASE64 加解密接口2个。 以前做的实验,做了半边(java加密,C解密),因为那次就半边的需求。 这次都要由C这边来做(C加密,C解密), 磨叽了2个小时。 其实正确的姿势是,以前就应该将实验做全的,这次应该拿过来就好用。 又杯具一次, 一个愉快的周末没开个好头.对于基础代码,如果最开始没写好测试用例,以后有可能会写错。会怀疑到接
2019-04-22 10:26:37 1148
转载 JS检测IE控件是否加载
前言给同事写了测试用的IE控件,他要求如果控件没注册或控件dll不在硬盘指定位置时,要有提示. 不知道该咋玩,有搞过的同事给出了解决方法,用JS捕获异常来实现.测试网页<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> <TITLE>对象
2019-04-22 10:26:26 933
转载 OCIStmtExecute发送接收处理的定位
前言写了一个OCI接口测试程序,执行一个SQL, 看看发送接收处理都在哪个地址上实现的。前置条件准备在虚拟机中搭建oracle服务器,调通环境。 用sqldeveloper.exe能连接数据库。 在开发机上安装oracle开发组件,tnsping orcl通过。 写好OCI测试程序,可以正常执行SQL,并调用OCI接口分析出返回的查询语句结果集。 用wireshark对虚拟
2019-04-22 10:26:18 1380
转载 tns数据流的的读取格式
前言构造一个SQL查询语句,执行OCIStmtExecute后,会发出一个包,收到1个包。 发出的包,包含SQL语句 :select * … 收到的包: 结果集列信息描述(结果集列数量,列名称,列数据类型)今天对回包进行了初步分析, 确定了tns流(列信息描述)数据每一步的读取数量。这样,这个流就不是杂乱无章,而是可以看出一些逻辑(即使不继续分析,只看数据的分隔)。只有执行OCI
2019-04-22 10:26:09 640
转载 实验:对OCI测试程序产生回包数据的读取
前言尝试分析OCI测试程序产生回包流的读取。 用调试器带上OCI测试程序跑,跟到OCI dll中,数据分隔已经搞清了。按照数据分隔往出读,含义也能猜个大概。 但是OCI的回包流格式和sqldeveloper.exe的回包流格式不一样。 sqldeveloper.exe是java写的,不知道他调用的本地函数是哪个。只能靠猜,不靠谱。 看sqldeveloper和oracl
2019-04-22 10:26:00 649
转载 OCI : ORA-01405: 提取的列值为 NULL
前言4个月以前,预研了tns314的包分析。当时写了一个OCI测试程序,用来配合抓包。 现在将运行环境搞掉了,重新安装客户端后,发生了2个问题。 * 装32bits的oraclient, 编译的是64bits的OCI测试程序,引起报错。 解决方法:将测试工程种加入32bits和64bits的OCI库,根据安装的oraclient的不同(32bits/64bits),...
2019-04-22 10:25:49 1390
转载 tns协议版本和oracle数据库客户端之间的对应关系
前言要分析tns312的包,由于想用oci接口来辅助抓包,就像找到到底是哪个oracle库的客户端能收发tns310的包。 运气还不错,试到oracle8i, 终于看到了tns310的包。 用oracle8i客户端内建的sql_plus和自己写的oci测试程序都能收发tns310的包了。 现在大部分数据库工具收发的都是tns310的包。但是很多工具用的不是oci接口,而是oj...
2019-04-22 10:25:39 969
原创 how_to_build_chromium_project_for_win
这周用业余时间,编译了一次chromium工程. 中间有点自己挖的坑.编译环境: win10x64(cpu = i7-2600k, memory = 16GB, harddisk = ssd-512mb + 2T机械硬盘) + vs2017 + depot_tools编译了chromium, 才知道自己的开发机有多渣 😦原来想16GB内存还是够大,就将虚拟内存值改了。
2019-04-22 10:25:30 2165
原创 how_to_build_chromium_project_for_linux
用了2天半时间,在linux下编译了一次chrmomium工程.中间有些官方文档上没有的补充操作.不管编译哪个平台版本的chromium工程, 都强烈的感到自己的开发机太渣了:)
2019-04-22 10:25:12 1553
转载 passwd_pro
前言要在passwd源码上增加点功能, 先加了一个口令中不能包含用户名,增加了安全性.试验目的工程可以改,可以找到修改点。试验环境都留着,以后还可以接着改。试验环境fedora22原始工程版本未找到fedora22配套的passwd源码,用的是LFS中带的高版本shadow-4.5.tar.xz工程的编译shadow-4.5.tar.xzxz -d sh...
2019-04-22 10:25:02 868
转载 linux c : get curent tty info
前言在linux shell 中可以用命令来看tty信息 tty 看当前tty名称 who 看所有登陆用户的信息。 结合这2个命令,可以分析出当前tty登陆的信息(tty_name, user_name, long_time, client ip). 将tty和who重定向到文件中,用程序模拟分析,得到了当前tty登陆的信息。效果[root@localh...
2019-04-22 10:24:53 642
转载 passwd没读取/etc/pam.d/system-auth
前言对passwd做了些完善,给同事测试,说不好使。原因是/etc/pam.d/system-auth中配置的策略项不好使。 这不是埋汰gnu那帮大神么 :)去看了下passwd检查口令安全性的实现,果真没有读取/etc/pam.d/system-auth的内容…,只读取了etc/login.defs. 具体检查在obscure.c::simple()函数中, 看名字就知道ob...
2019-04-22 10:24:41 1756
转载 use popen replace temp file
前言linux中,如果用C库函数不容易完成的任务,可以用linux命令组合做,然后将命令结果重定向到文件中, 分析文件的行内容,得到想要的结果。但是使用临时文件, 可能面临多线程临时文件名冲突的问题. 也可能面临临时文件落地,引起的安全性问题.前天看到一段代码, 使用了popen来执行命令,读命令结果的操作,都是针对管道完成。 感觉使用管道的操作,比使用临时文件简洁多了....
2019-04-22 10:24:31 280
转载 使用dup,dup2重定向的试验
前言想在bash修改版代码中得到执行用户输入命令后的回显数据,没调通。管道中没有数据, 应该是找到的fd不对。 bash代码执行用户输入的命令后,具体命令回显用的是重定向。 重定向用linuxC实现时,用的是dup和dup2. 从头做个试验,体会一下dup和dup2的效果。 本来可以在sshd代码中尝试得到回显,因为sshd服务端和ssh客户端(xshell, putty)之...
2019-04-22 10:24:23 525
转载 通过dup2实现linux命令回显的捕获
前言在bash代码中,看到关闭了一个fd后,屏幕上才出现linux命令执行后的回显内容. 做了一个试验,实现了回显数据的捕获。 实现思路: * dup2重定向stdin到自己建立的管道 * select管道,如果有数据就读取管道中的数据,并转发. 如果超时,就跳出. 做了好久的试验,终于达到预期的效果了:)demo// @file main.cpp/...
2019-04-22 10:24:13 574
原创 debug chromium project
编译好chromium工程后,想调试一下,找找自己感兴趣的点。子工程太多了,断断续续的看了几次,居然没找到主工程。那法看工程起始的实现了。看了工程选项的设置,工程输出名称和工程名称相同。去找 “D:\chrominum\src” *.vcxproj, 找到了chrome工程,再打开vs2017版的all.sln,将过滤文件夹都收起,按照过滤文件夹的名字取找,这回找到了。
2019-04-22 10:24:02 371
原创 debug chromium project - mouse event - drag
想看看chromium的消息循环是怎么实现的.在工程中搜索’drag’, 选择在d:\chrominum\src\ui\views\view.cc中膜拜代码. 能看到很多函数入参为ui::MouseEvent& event, 下断点试试。断点命中后,看栈回溯,和普通windows程序一样,也是由消息循环触发的.
2019-04-22 10:23:47 296
原创 debug chromium project - build project after modify
对chromium工程代码修改后,如果想看效果或想调试,直接在vs2017中编译是不行的, 各种编译不过.要用ninja编译才行,编译完,打开all.sln进行调试。ninja是自带增量编译功能的,如果只修改了一个工程,1分钟不到就可以编译完.用vs2017载入all.sln时间很长,修改后可以不关闭工程。直接开一个cmd, 编译就是,然后直接用vs2017调试.
2019-04-22 10:23:33 353
原创 debug chromium project - create sub proces
chromium主程序运行时,是靠子进程来干活的,带不同参数干不同活.子进程有工具类的(crash process), 有页面渲染的。还没有具体去跟,只有跟着不同参数的子进程再跑,才能知道具体干了啥,是怎么干的。这个试验,先确定chromium主进程,创建子进程的点,启动的子进程数量,启动子进程的时机,猜子进程的功能(按照子进程参数猜).
2019-04-22 10:22:33 1143
转载 use ncrack to test rdp login
前言给同学写个小程序,测试给定的rdp ip,port, user,pwd,是否为正确的登录信息。开始他找了个基于x11的开源程序(还是个服务程序, 不能直接看到rdp登录的效果),让我抽出rdp登录的实现,做个工程。看了一下,牵扯的还挺多,最重要的是编译不过(开源的工程各种依赖),无法看到实际运行的效果。如果要研究编译过,工作流程的实现,需要时间。如果要从他找的x11开源程序中抽取出rdp...
2019-04-22 10:22:20 835
原创 在win10中编译chromium工程的稳定版本
帮同事做实验,都是win10 + vs2017 + chromium工程,他那就能编译成功,我这就显示winsdk路径不对。后来chromium工程编译过后,总结了一下失败的原因:win10和vs2017要配套.chromium编译环境太娇气了, 不只是配置要求高,操作系统和vs环境也要最新的。win10 v1803(OS内部版本 17134.191) // 用winver查看。
2019-04-22 10:22:04 2928
原创 chromium工程代码走读-子进程的创建和子进程的实现---type=crashpad-handler
工程编译好了,修改了winMain函数入口点代码。使之可以弹框打印出ppid/pid/command_line.启动工程后,遇到弹框,遇到主进程或感兴趣的子进程,附加上去单步观摩代码实现。chromium工程启动后,首先会启动一个崩溃信息处理程序. 先观摩了这个子进程的创建和子进程的实现。chromium代码封装的层次挺深的,先看个大概。chromium的修改都在vs2017中进行。chromium的编译在cmd中运行调试和单步用附加弹框的chrome.exe进行。
2019-04-22 10:21:54 4006
原创 add source files on chromium project
如果要学习并修改chromium工程,将自己的实验代码,散落在chromium工程中,也不是不行。缺点是如果要在和实验版本不同的chromium工程中做实验时,那已有的自产代码的迁移就麻烦一点。理想状态是将自产代码放在自己的实现文件(my_imp.h, my_Imp.cc)中, 原版的chromium工程只需要包含my_imp.h, 在该调用my_Imp.cc实现的函数或类时,只调用my_imp_xx函数或成员函数. 这样实验工程的可维护性就好多了.
2019-04-22 10:21:43 636
原创 send remote syslog by socket
给同事准备一个类, 用来构造syslog协议数据, 通过socket发送到指定ip的udp514端口。经验证,只要配好了远端ip的接收远程syslog. 发送过去的syslog协议数据,就可以在远端的/var/log/message中,添加远程syslog日志。syslog协议虽然简单,但是自己真弄一个可用的类,细节调整还用了很多时间。接口封装的还不是很好用,还是会给调用者造成一定的困扰.同事一定会打我的,看实际情况再调整接口。这个初版接口只是能用,但是很难用。
2019-04-22 10:21:19 398
原创 chromiumUI中从处理url键盘输入到内建url页面内容准备的函数调用过程
在chromium中输入url时, 想看看在哪处理的键盘输入。还想看看, 输入内建url时,从键盘处理到url页面数据准备的全过程。在chromium工程中可以看到内建url索引页面的url内容所有可用的chromium buildin url list在chromium的url输入框,输入以下url, 会显示出chromium所有的内建urlFor Debug。
2019-04-22 10:20:57 1171
原创 Creating Chromium WebUI Interfaces
在68.0.3440.84上,准备加一个webui.webui的意思是内建的url, 不是远程的url.按照官方的说法,这2种方法都能加webui.比较起来,第一种好些,可以将加入的实现文件归在一起,好维护。先按照第一种方法做实验,不成功。对照报错信息看, 是ui_0.lib报错。说定义的实现类找不到,那明显是实现文件没编进工程引起的。或者新加入的实现,编译后的obj, 没包进ui_0.lib. 估计是编进components的obj, 不在ui_0.lib的引用中。
2019-04-22 10:20:44 1580
原创 javascript_interaction_with_c_plus_plus_on_chromium
chromium官方给出的制作webui的资料,共3部分信息。制作web-ui使web-ui中的js和chromium中的c++实现互操作在web-ui中建立弹出的子web-ui第一个实验做完了.这周末在做第二个实验. 做实验的分支是68.0.3440.84, 发现跟着官方文档玩,根本编译不过。去google下,发现官方文档和跟在官方文档后面的同学做的实验,都一个样子,基本就是汉化了一下。都不是完整的实验,就说了一下js和c交互的要点。做实验的chromium版本也没说.
2019-04-22 10:20:29 499
原创 add h264 to chromium
网上有资料,讲如何添加h264到chromium.不过,他们都没说到当时实验的chromium版本。有的资料和手头的chromium版本对不上。第一波做实验的大神从哪找的资料?很好奇。BUILD.gn中有句断言, 不让proprietary_codecs和media_use_ffmpeg同时为真。看到断言的原因后,在配置文件中加了一句同时不定义proprietary_codecs = trueassert(
2019-04-22 10:19:58 914
转载 glog的基本用法
前言看到chromium中使用glog写日志。 单独看看glog的用法. glog发布版本 : https://github.com/google/glog/releases glog开发版的linux工程文件中都有win版的回车,直接编译都不过。需要下载稳定版本. e.g. google-glog 0.3.5win版的编译要编译出各种lib(MBCS, Unicode, Debug...
2019-04-22 10:19:47 1461
转载 glog的基本用法-on win
前言glog在linux下直接包上头文件和库文件, 就可以用了。 在win下,还涉及glog库的编译选项和测试程序编译选项的匹配问题. 如果选库选到开发版本而不是稳定版,也是有问题。 看其他同学做的plog实验,都是一次成功… 我咋那么背啊,做实验做了好久。开始选的是glog开发版,在windows下试了一下编译 ,好像还得改下代码。在linux下编译, 好多文件都...
2019-04-22 10:19:33 548
转载 linux-script
前言今天做了个实验,看看script命令怎么用, 效果最好.做完实验,实现script命令自动静默启动, 自动记录远程shell用户的屏幕操作到日志文件。实验做个程序,实现静默启动script命令,将屏幕操作记录到日志文件(日志文件名是ttyname, username, time的组合)启动script的程序片段int fn_test(int argc, char** argv){...
2019-04-22 10:19:17 358
pcasm-book-simplified-chinese.zip
2014-05-09
Advanced-Windows-Debugging-sources-awd.zip
2014-04-28
TrueCrypt 7.1a Source.zip
2013-11-01
filedisk-17-org.zip
2013-10-31
Sysinternals_Source.zip
2013-09-16
vs2010_Sample_C_plus_plus.zip
2013-08-08
DebugViewV4_81.zip
2013-03-13
srcSpyxx.zip
2012-09-30
ProcessExplorer
2011-11-05
cppunit-1.12.1.tar.gz
2011-08-30
STLport-5.2.1.tar.bz2
2011-08-20
工程目录结构模板设计_2011_0309_2054
2011-03-10
ResourceHack
2010-11-26
NTFS文件系统扇区存储探秘_电子书和随书光盘.7z
2019-03-18
Linux C程序设计王者归来_book_cd.7z.004
2018-08-22
Linux C程序设计王者归来_book_cd.7z.003
2018-08-22
Linux C程序设计王者归来_book_cd.7z.002
2018-08-21
Linux C程序设计王者归来_book_cd.7z.001
2018-08-21
eclipse-java-mars-2-win32-x86_64.zip
2017-04-21
International standard ISO/IEC C++98
2015-12-25
book code C语言名题精选百则
2015-12-16
depends22_x64.zip
2015-07-26
C++_Templates_The_Complete_Guide_book_code.zip
2015-06-14
quicktimesdk 7.3.0.70 for windows
2015-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人