源码
清钟沁桐
for study
展开
-
CreateRemoteThread简单应用之二
宿主进程 exe.exe#include #include #include int foo (void){ printf("foo\n"); // MessageBox(NULL, "foo", "Notice", MB_OK);#if 0 HINSTANCE hUser32 = LoadLibrary("User32.dll");原创 2013-02-19 22:59:33 · 657 阅读 · 0 评论 -
经典的量水问题
转:http://www.codesky.net/article/200504/62555.html转载 2013-08-26 20:04:29 · 2449 阅读 · 0 评论 -
精确的槽位信息获取,可以在reload时候
new_chain = insert_one_insn (chain, before_p, code, pat); { rtx basex; HOST_WIDE_INT offsetx = 0; basex = MEM_P (mem) ? XEXP (mem, 0) : mem; if (GET_CODE (basex) == PLUS && CO原创 2014-10-23 09:53:30 · 1176 阅读 · 2 评论 -
类模板中.h和.cpp的实现方法
一般类的声明和实现放在两个文件中,然后在使用该类的主程序代码中,包含相应的头文件".h"就可以了,但是,模板类必须包含该其实现的.cpp文件才行。也就是说,在你的主程序中,将 #include"DouCirLList.h" 替换成 #include"DouCirLList.cpp" 应该就可以了。转载 2014-10-16 23:06:20 · 5545 阅读 · 0 评论 -
代码流程图 插件
OllyDbg 1.x 【转帖】OllyTraceGraph 0.1.0 by JanBeck :http://bbs.pediy.com/archive/index.php?t-176441.html Recently I needed this plugin code for my own needs, so I decided to fix some things for y原创 2015-08-22 09:19:43 · 1972 阅读 · 1 评论 -
linux 下动态库使用示例
linux调用库的方式有三种:1.静态链接库2.动态链接库3.动态加载库其中1,2都是在编程时直接调用,在链接时加参数-l进行链接第三种需要在编程时使用dlopen等函数来获取库里面函数的定义,然后进行调用.不过对于没有提供头文件的动态库,只能dlopen等函数来调用 gcc getmaxlen.c -fPIC -shared -o libtest.so原创 2015-12-27 09:56:20 · 733 阅读 · 3 评论 -
从TeamViewer的运行内存中提取密码
http://www.toutiao.com/a6450771078498763021/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=13287414181&utm_medium=toutiao_android从TeamViewer的运行内存中提取密码转载 2017-08-09 06:04:26 · 10875 阅读 · 0 评论 -
将windows风格路径(\\或\)调整为linux风格路径(/)
#include #include #include using namespace std;#define ALPHABET_NUM 256typedef enum { ENUM_PATH, ENUM_DATA} enumtype; char fsm[9][ALPHABET_NUM];void initfsm(){ memset(fsm[0],0,原创 2012-09-09 22:35:43 · 2613 阅读 · 0 评论 -
算法系列之一 : Google方程式
有一个字符组成的等式:WWWDOT - GOOGLE = DOTCOM,每个字符代表一个0-9之间的数字,WWWDOT、GOOGLE和DOTCOM都是合法的数字,不能以0开头。请找出一组字符和数字的对应关系,使它们互相替换,并且替换后的数字能够满足等式。这个字符等式是Google公司能力倾向测试实验室的一道题目,这种题目主要考察人的逻辑推导能力和短期记忆能力,通常棋下的好的人解决这类问题会更得心应转载 2012-08-19 18:18:25 · 1051 阅读 · 0 评论 -
算法系列之五:最长公共子序列(LCS)问题(非连续子序列)的两种解法
最长公共子序列也称作最长公共子串,英文缩写是LCS(Longest Common Subsequence)。其定义是:一个序列S,如果分别是两个或多个已知序列的子序列,且是符合此条件的子序列中最长的,则称S为已知序列的最长公共子序列。 关于子序列的定义通常有两种方式,一种是对子序列没有连续的要求,其子序列的定义就是原序列中删除若干元素后得到的序列。另一种是对子序列有连续的要求,其转载 2012-08-19 18:23:56 · 1094 阅读 · 0 评论 -
MyQQ.cpp: 非完全版本
<br />// MyQQ.cpp: 非完全版本<br />//////////////////////////////////////////////////////////////////////<br />#include "QQdef.h"<br />#include "QQcrypt.h"<br />#include "winsock2.h"<br />#include "md5.h"<br />#include "MyQQ.h"<br /><br />#ifdef _原创 2010-06-27 22:31:00 · 912 阅读 · 0 评论 -
Linux动态库(一)之同名符号
ok,万事皆有缘由,还是先从我遇到的这个问题说起~~~问:有一个主执行程序main,其中实现了函数foo(),同时调用动态库liba.so中的函数bar(),而动态库liba.so中也实现了foo()函数,那么在执行的时候如果在bar()中调用foo()会调用到哪一个?在main()中调用呢?直接给答案:如果是在Linux上,liba.so中的foo()函数是一个导出的(extern)”可见”函数,那么调用会落入主程序里,这对于liba.so的作者来说实在是个灾难,自己辛辛苦苦的工作竟然被自转载 2010-10-14 00:26:00 · 7853 阅读 · 8 评论 -
elf文件格式学习总结
<br /> 编译器将一个源文件生成目标文件时,会在目标文件中生成符号表和重定位表。 符号表包含在文件中定义的全局符号以及在文件中引用的外部符号(外部函数或变量)。重定位表告诉链接器在哪些位置要进行重定位操作。 编译器生成的目标文件在文件的开始处会有一个elf头,描绘了整个文件的组织结构。它还包括很多节(section)。这些节有的是系统定义好的,有些是用户在文件在通过.section命令自定义的,链接器会将多个输入目标文件中的相同的节合并。 链接器对编译生成的目标文件进行链接时转载 2010-10-14 00:37:00 · 2286 阅读 · 2 评论 -
使用shell进行调用脚本或者命令driver的测试
#!/bin/bash compile=gcctest_filename=driver.c test_filename_base=${test_filename%.*}test_basename=test# echo and run the specified commandecho_and_run(){ echo $@ eval $@ if原创 2011-11-16 13:43:45 · 1296 阅读 · 2 评论 -
c语言实现全排序
//input 8 12.61s consumed //input 8 11.72s consumed remove '-' in the printed array #include #include #include #define LENGTH 27 int n=0; void permute(int[],int,转载 2011-12-23 23:15:55 · 783 阅读 · 0 评论 -
c++ 实现部分排序,待改进
C++代码(4)排列与组合#include #include #include using namespace std;templatevoid Perm(T* pT, int n, int m){ if (n == m) { for (int i=0; i<m; i++) cout << pT[i] <<转载 2011-12-24 00:19:11 · 900 阅读 · 1 评论 -
C++ 实现全组合
#include #include #include #include using namespace std; #define N 3const char* m_Data[N] = {"aaa", "bbb", "ccc"}; void OutPut(int i, int j){ string temp("");原创 2011-12-24 10:18:57 · 2745 阅读 · 2 评论 -
linux(cygwin) 获取进程号
#include #include int main ( ) { printf ("The process ID is %d\n", (int) getpid ()) ; //±¾½ø³Ì printf ("The parent process ID is %d\n", (int) getppid ()) ; //¸¸½ø³Ì return 0 ; }转载 2011-12-26 13:04:11 · 1363 阅读 · 0 评论 -
种子填充算法在验证码识别中的的应用
种子填充算法在验证码识别中的的应用 需要模拟精灵v7.15 下载:http://www.yhhe.net/bbs/dispbbs.asp?boardID=4&ID=2851&page=1模拟精灵识别验证码的能用是强大的,一个函数即可以去除杂色杂点,但是有时候验证码中有大量的干扰线,并且位置随机变动的太历害,这时候我们在处理验证码以前转载 2012-01-15 09:41:04 · 2426 阅读 · 0 评论 -
用command模拟多线程
emus -- 用command模拟多线程 <!-- var commandList = []; function executeCommands(){ if (commandList.length > 0) { commandList.shift()(); } } functio转载 2012-08-05 09:47:30 · 656 阅读 · 0 评论 -
MyQQ.cpp: 非完全版本
<br />// MyQQ.cpp: 非完全版本<br />//////////////////////////////////////////////////////////////////////<br />#include "QQdef.h"<br />#include "QQcrypt.h"<br />#include "winsock2.h"<br />#include "md5.h"<br />#include "MyQQ.h"<br /><br />#ifdef _DEBUG<br />#un原创 2010-06-27 22:35:00 · 811 阅读 · 0 评论