- 博客(39)
- 资源 (119)
- 收藏
- 关注
转载 linux gdb调试基本命令
Gdb调试注意:在Gcc编译选项中一定要加入 –ggcc -g -o debug debug.c1.启动调试前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息。gdb program //最常用的用gdb启动程序,开始调试的方式gdb program core //用gdb查看core dump
2016-12-31 22:47:30 5430
转载 gdb工作原理和内核实现
转自:http://www.oenhan.com/gdb-principlegdb主要功能的实现依赖于一个系统函数ptrace,通过man手册可以了解到,ptrace可以让父进程观察和控制其子进程的检查、执行,改变其寄存器和内存的内容,主要应用于打断点(也是gdb的主要功能)和打印系统调用轨迹。一、ptrace函数函数原型如下:
2016-12-30 00:08:19 5840
转载 Android反调试笔记
转自:https://my.oschina.net/cve2015/blog/7343811)代码执行时间检测通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime.也可以直接使用汇编指令RDTSC读取,但测试ARM64有兼容问题。time_t t1, t2;time (&t1);/* Parts
2016-12-29 23:46:16 1509 2
转载 linux ELF反调试初探
转自:http://www.freebuf.com/sectool/83509.htmlELF(Executable and Linkable Format)是Unix及类Unix系统下可执行文件、共享库等二进制文件标准格式。为了提高动态分析的难度,我们往往需要对ELF文件增加反调试措施。本文便对相关技术进行了总结归纳。1.背景知识1.1 ELF文件布局ELF文
2016-12-29 23:36:32 2941
转载 ndk生成ARM汇编(附代码)
转自:http://www.cnblogs.com/bingghost/p/5838688.html使用ndk即可生成arm汇编1.首先写好hello.c#include int main(int argc, char const *argv[]){ int a=1024; printf("hello=%d\n", a); return 0;}2.编写m
2016-12-29 23:18:44 2522 1
转载 理解静态链接与动态链接
转自:http://burningcodes.net/%E7%90%86%E8%A7%A3%E9%9D%99%E6%80%81%E9%93%BE%E6%8E%A5%E4%B8%8E%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5/1.原始的链接方法在讲静态链接与动态链接前,先看看原始的链接方法。比如编译如下代码:1234567891011
2016-12-29 22:34:30 4366
转载 window反调试跟踪的一点心得
转自:http://blog.csdn.net/super_mimi/article/details/40425347此贴转载于看雪:http://bbs.pediy.com/showthread.php?t=79205本文所提到的一些方法,对于熟练的逆向调试者来说不值一提。写出来的目的只是帮助初学者解决调试中可能遇到的一些问题。这些问题以前我遇到过,当时解决起来花了不少时间。
2016-12-29 20:28:17 1031
转载 Windows 下常见的反调试方法
转自:http://www.cnblogs.com/lanrenxinxin/p/5193920.html稍稍总结一下在Crack或Rervese中比较常见的一些反调试方法,实现起来也比较简单,之后有写的Demo源码参考,没有太大的难度。 ①最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的Bein
2016-12-29 20:19:27 997
原创 c语言之volatile和register关键字
//register.cpp#include #include #include int main1(){ for(register int i=0;i<10;i++) { //由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 printf("%d\n",&i);
2016-12-28 00:10:03 3670
转载 __ATTRIBUTE__ 你知多少?
转自:http://www.cnblogs.com/astwish/p/3460618.html代码示例:http://blog.csdn.net/earbao/article/details/53897385GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable
2016-12-27 17:34:14 357
原创 gcc __attribute__属性demo
//aligned.c#include #include #ifdef ON//关键字__attribute__也可以对结构体(struct)或共用体(union)进行属性设置。大致有六个参数值可以被设定,//即:aligned, packed, transparent_union, unused, deprecated 和 may_alias。struct p{ int
2016-12-27 17:26:57 3343 2
原创 linux c之sleep的多种实现
#include #include #include //使用select实现精确到1微秒(0.000001秒)的sleepvoid sleep_us(unsigned int nusecs){ struct timeval tval; tval.tv_sec = nusecs / 1000000; tval.tv_usec = nusecs % 100000
2016-12-27 15:30:34 4467
转载 小问题大思考之C++里的inline函数
http://blog.csdn.net/imyfriend/article/details/12676229inline,一个神奇的关键字。有了它,你同时就可以获取函数和宏的优点。inline定义的函数,比起没有inline的函数来说,没有执行函数调用所带来的负担(对此可参见《C++程序的内存布局》),因此它是高效率的;比起宏来,它具有函数的可预期行为和参数类型检验。宏的行为难于预期
2016-12-26 11:37:22 436
原创 linux c之pipe的使用例子
#include /* some systems still require this */#include #include /* for winsize */#if defined(MACOS) || !defined(TIOCGWINSZ)#include #endif#include /* for convenience */#include /* for c
2016-12-26 11:14:44 3893
转载 Linux下快速静态编译Qt以及Qt动态/静态版本共存
http://www.cnblogs.com/findumars/p/4851587.htmlQt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-opensource-src的tar包,到网上一查,乖乖,大部分人编译这个包居然花费了12~13个小时
2016-12-24 16:38:22 4861
原创 Qt5 QProcess的使用和readAllStandardOutput()中文乱码的解决
#include #include #include #include #include using namespace std;//本cpp文件请使用utf-8格式编码(注:不是以utf-8无bom格式编码),参考工具notepad++void test001(){ QProcess pro; pro.start("ping");//测试linux 和window
2016-12-24 10:33:48 7389
原创 linux c读取tty和消息队列的使用demo
#include #include #include #include #include #include #include #define TTY0 "/dev/pts/0"#define TTY1 "/dev/pts/12"#define TTY2 "/dev/pts/14"#define TTY3 "/dev/pts/3"void tty_write(char* t
2016-12-21 23:27:26 2327
原创 qt控制台程序在window直接退出方法
#include #include #include #include #include #include #include "mythread.h"using namespace std;//qt控制台程序在window直接退出方法。int main(int argc, char *argv[]){ QString str; QTextStream out(
2016-12-20 23:45:07 7215
转载 OpenCV函数cvFindContous提取图像轮廓
OpenCV中提供了很多关于图像轮廓处理的函数,这里我用cvFindContours函数来提取轮廓,并用cvDrawContours函数将提取的轮廓画出来。函数cvFindContours的第一个参数就是我们要进行提取轮廓的目标图像,这里要注意,这个图像必须是一个二值图。得到二值图的方法有很多,这里我采用的是cvThreshold函数,通过设置阀值来得到相应的二值图。当然,这里阀值的选择根据不同的
2016-12-19 00:49:42 1628
原创 c语言实现大小端判断和二进制模式写入各种数据到文件
#include #include #include //测试大小端模式void test_endian(){ uint32_t i=0x04030201; unsigned char* cp=(unsigned char*)&i; if(*cp==1) printf("little-endian\n"); else if(*cp==4)
2016-12-15 12:11:20 2495
原创 linux c之shm共享内存的使用例子
//shm_test.c#include #include #include #define BUFFERSIZE 1024int main(int argc, char const *argv[]){ int shmid; char* shmadd; //创建一个共享内存对象 if((shmid=shmget(IPC_PRIVATE,BUFFERSIZE,0666))<0)
2016-12-14 21:31:06 6753
原创 linux c hexdump之实现cat的16进制显示数据
/*hexdump.c reversible hexdumpCopyright (c) 1996 by Andreas Leitgeb (AvL) Permission to use, copy, modify, and distribute this software and itsdocumentation for any purpose and without fee
2016-12-12 23:53:37 8496 2
原创 最简单的一个makefile实例
//test.c#include #include "tool.h"int main(){ printf("add=%d\n",add(2,6)); return 0;}//tool.c#include "tool.h"int add(int a,int b){ int c=a+b; return c;}//tool.h#ifndef _TOO
2016-12-12 22:59:53 393
原创 linux c之htpasswd
/* * htpasswd.c: simple program for manipulating password file for NCSA httpd * * Rob McCool *//* Modified 29aug97 by Jef Poskanzer to accept new password on stdin,** if stdin is a pipe or file
2016-12-11 21:44:40 693
转载 在Ubuntu14.04下安装gcc 6.2解决C++14支持问题
在学习《C++ Primer》时,我用的环境是Ubuntu14.04,采用DPKG机制最新能使用的gcc版本是4.8.4,虽然这个版本已经对C++11支持的已经很好了,但是还是有一些小问题。 例如,对于string类型,可以使用insert(p,b,e) 将迭代器b,e指定范围内的元素插入到迭代器p指向的元素之前。在c++11标准下,insert返回的是第一个新加入元素的迭代器,旧版本中返回v
2016-12-06 23:20:26 6464
原创 linux c elf文件格式操作之sstrip源码(支持cygwin编译)
202年的strip.c/* sstrip: Copyright (C) 1999-2001 by Brian Raiter, under the GNU * General Public License. No warranty. See COPYING for details. */#include #include #include
2016-12-05 12:08:20 1762
原创 c语言之变参函数、calloc和布尔类型bool
#include #include #include #include #include #include #include //c语言之变参函数、calloc和布尔类型boolvoid simple_printf(const char* fmt, ...){ va_list args; va_start(args, fmt); while (*fm
2016-12-03 16:17:39 628
原创 C语言的标准和一些基本的数据类型
http://en.cppreference.com/w/http://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5C++ referenceC++98, C++03, C++11, C++14, C++17C referenceC89, C95, C99, C11charunsigned charshort
2016-12-03 16:12:53 846
原创 C++ 控制台程序中输出UTF8字符乱码问题解决方法
1. 使用代码纠正 // 控制台显示乱码纠正 system("chcp 65001"); //设置字符集 (使用SetConsoleCP(65001)设置无效,原因未知) CONSOLE_FONT_INFOEX info = { 0 }; // 以下设置字体 info.cbSize = sizeof(info); info.dwFontSize.
2016-12-03 14:57:59 33906 5
原创 java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。
public class Demo { //java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。 public static void main(String[] args) { for(int i=0;i<1500;i++) { //String str=to52Jinzhi(...
2016-12-03 00:59:42 5391 2
原创 Java实现干支纪年法
public class 干支纪年法 { // 甲、乙、丙、丁、戊、己、庚、辛、壬、癸 //public static final int[] skyBranch = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 //public static final char[] earthBranc
2016-12-03 00:58:19 2717 1
转载 Windows7 x64下VS2012/VS2013编译PHP5.6
转自:http://blog.csdn.net/letshi/article/details/45702299http://windows.php.net/downloads/php-sdk/资源下载php-sdk-binary-tools-20110915.zipdeps-5.6-vc11-x64.7zphp-5.6.8-src.zip请自行下载安装VS2012或
2016-12-02 19:20:58 2126
转载 使用C语言来扩展PHP,写PHP扩展dll
以前写过一次PHP扩展DLL,那个是利用调用系统的COM口实现的扩展,与PHP不能真正融合。心血来潮,研究了一下PHP的源码,网上找了一些资料,自己尝试写了一个扩展DLL,测试没问题。下面记录一下具体扩展方法: 1、首先从www.php.net网站上下载php源码,此处以php-5.2.17版本为例,下载后解压至E:盘根目录下(目录可以自己随意定)。 2、下载安装VC++ 6.
2016-12-02 16:08:05 1806
转载 Ubuntu 下php调用c语言.so文件
写一个php模块(php extension),在php中调用该模块内的函数,再通过该模块来调用so中的函数。首先做一个简单的so文件:/*** gcc -O -c -fPIC -o hello.o hello.c * gcc -shared -o libhello.so hello.o*/int hello_add(int a, int b){ re
2016-12-02 16:06:57 628
原创 Java GetOpt的使用和源码
/* * Copyright (c) 2007-2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*//* * Copyright 2001-2004 The Apache Software
2016-12-02 14:45:17 1994
转载 llvm之旅第一站 - 编译及简单使用
转自:http://www.nagain.com/activity/article/4/llvm介绍llvm(low level virtual machine)是一个开源编译器框架,最早的时候是Illinois的一个研究项目,主要负责人是Chris Lattner,他现在就职于Apple. Apple 目前也是llvm项目的主要赞助者之一。llvm有一个表达形式很好的IR
2016-12-01 14:41:59 4293
原创 C语言中浮点数double/float相等判断
#include #include /* fabs */#ifdef _WIN32 // #include #endif//输出的数值不断递增,即使将10改成10.0,循环也没有中止,为什么?void test_float001(){ double i; for(i=0; i != 10; i += 0.1) { prin
2016-12-01 11:48:08 8564 2
转载 Ubuntu编译安装llvm+clang
前言:下载的文件放置的目录结构llvmllvm/tools/clangllvm/projects/compiler-rt1、下载llvm的源代码wget http://llvm.org/releases/3.6.0/llvm-3.6.0.src.tar.xzmv llvm-3.6.0.src llvm2、下载clang的源代码cd llvm/toolsw
2016-12-01 11:47:18 4534
转载 永远不要在Linux执行的10个最危险的命令
Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正 在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。(译注:当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普 通用户身份下,破坏的只是自己的一亩三分地。)1. rm -rf 命令rm -rf命令是删
2016-12-01 09:29:18 607
sqlite3.36集成加密版_vs2008
2014-04-10
Xtreme ToolkitPro+MFC使用小例子
2014-03-19
ormlite-jdbc demo使用例子。
2015-04-06
基于netbeans+javafx+fxml的基本控件的使用
2014-10-29
java 连接各种数据库大全和实例
2014-07-14
hadoop1.1.2操作例子 包括hbase hive mapreduce相应的jar包
2014-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人