- 博客(26)
- 收藏
- 关注
原创 IDA Pro 导入jni.h头文件定义
步骤一:点击IDA Pro 菜单项“File->Load file->Parse c header file ” 选择jni.h头文件步骤二:简单修改jni.h ,注释第27行的#include ,还有将1122行的#define JNIEXPORT_attribute_((visibility("default"))) 改成 #define JNIEXPORT 修改完后可以成功导入步骤三
2014-06-02 10:11:32
7827
原创 ARM反汇编基础(一)
#include int nums[5]={1,2,3,4,5};int for1(int n){int i=0;int s=0;for(i=0;i{ s+=i*2;}return s;}int for2(int n){int i=0;int s=0;for(i=0;i{ s+=i*i+nums[n-1];}ret
2014-05-31 15:39:36
1141
原创 LUA与C++通信(一)
1. 下载lua源文件 下载地址http://www.lua.org/download.html2. 编译lua源文件 在lua源文件目录下创建 run.bat 内容如下cd src cl /O2 /W3 /c /DLUA_BUILD_AS_DLL l*.c del lua.obj luac.obj link /DLL /out:lua52.dll l*.obj cl
2014-05-30 18:59:30
913
原创 在EXE文件中查找指定字符串
例子程序:// .cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "iostream"#include "string"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ string str="hello world"; cout<<str<<endl;
2014-05-30 15:22:08
2286
原创 API HOOK 例子程序(HOOK资源管理器强制关闭进程)
1.创建一个DLL文件 写下如下代码 // dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"#include "stdio.h"PROC oldAddress = (PROC)TerminateProcess;PROC NewAddress = NULL;DWORD * dwAddress = NULL;BOOL My_
2014-05-28 14:15:31
1789
原创 编写DLL程序方法(二)
第一步:创建一个动态链接库程序第二步:编写一个测试程序#include "stdafx.h"int add(int a,int b){return a+b;}int sub(int a,int b){return a-b;}BOOL APIENTRY DllMain( HANDLE hModule, DW
2014-05-27 21:01:04
531
原创 编写DLL程序的步骤
第一步:创建一个动态链接库程序第二步:编写一个测试程序#include "stdafx.h"int add(int a,int b){return a+b;}int sub(int a,int b){return a-b;}BOOL APIENTRY DllMain( HANDLE hModule, DW
2014-05-27 20:03:19
690
原创 获取任意一个程序的输入表
// testPE.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include /************************************************************************//* 函数名:RVAToOffset/* 函数功能:根据RVA计算出磁盘文件偏移/* 函数参数:lpBase:磁盘
2014-05-27 14:46:34
652
原创 获取鼠标所在窗体的PID
#include #include using namespace std;DWORD GetPIDFromCursor(void){ POINT CursorPos; //获取当前鼠标的位置 if (!GetCursorPos(&CursorPos)) { cout << "GetCursorPos Error: " << GetLastError() << endl;
2014-05-26 19:33:28
1449
原创 java 调用python的工具类
package pythonUtil;/*** * pythonUtil 需要先导入相应的jpython jar 包 */import javax.script.*;import org.python.util.*;import java.io.*;import org.python.core.*;import static java.lang.System.*;pu
2014-05-26 10:29:37
987
原创 MFC 文件操作
//使用MFC的文件操作CStdioFile//读取文件一行 CString WriteStr;CString ReadStr; CStdioFile file(L"WhiteName.db", CFile::modeNoTruncate|CFile::modeRead);file.ReadString(ReadStr);//写文件一行file.WriteString(WriteS
2014-05-25 16:38:09
711
原创 利用JAVA下载网络文件
package tom;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;public class DownLo
2014-05-25 16:36:27
633
原创 VS2012+Vld内存泄漏检测工具的安装
1、 vld下载地址http://vld.codeplex.com/releases2、 单击解决方案中的程序的属性 在包含目录中添加你下载vld的头文件包含目录比如:C:\Program Files\Visual Leak Detector\include;在库目录中添加vld的库文件包含目录比如:C:\Program Files\Visual Leak Detector
2014-05-19 11:10:24
1300
原创 IDA分析HELLO ARM 程序的ARM 反汇编
#表明这个main函数是被程序导出的EXPORT main#main为函数的名称IDA Pro 能自动识别源程序中所有的函数以及名称main#IDA识别出的栈变量var_C = -0xCvar_8 = -8#堆栈寻址指令 把寄存器的值压入堆栈STMFD SP1,{R11,LR}#SP寄存器的值加上4 赋给R11寄存器ADD R11,SP,#4 #
2014-05-19 10:03:22
3306
原创 如何定位关键代码
如何定位关键代码1、信息反馈法解析:所谓信息反馈法,是先运行目标程序,然后根据程序运行时给出的反馈信息作为突破口寻找关键代码。2、特征函数法解析:无论程序给出怎样的反馈信息,终究还是要调用Android SDK 中的相关API函数来完成的。所以直接搜索函数应该能很快定位关键代码处。3、顺序查看法解析:顺序查看是指从软件的启动代码开始,逐行的向下分析,掌握软件的执行流程。
2014-05-18 23:56:31
1044
原创 ASCII字符表
ASCII字符二进制十进制十六进制图形0010 00003220(空格)(␠)0010 00013321!0010 00103422"0010 00113523#
2014-05-18 23:24:23
589
原创 Dex文件内的数据类型
dex文件使用到的数据类型类型含义u1等同于uint8_t,表示1字节的无符号数u2等同于uint16_t,表示2字节的无符号数u4等同于uint32_t,表示4字节的无符号数u8等同于uint64_
2014-05-16 11:31:52
931
原创 Dalvik 操作指令
Dalvik 操作指令例如一条指令 :move-wide/from16 vAA,vBBBBmove 为基础字节码,标识这是基本操作wide为名称后缀,标识指令操作的数据宽度(64位)from16 为字节码后缀,标识源为一个16位的寄存器引用变量vAA 为目的寄存器,它始终在源的前面 取值范围为v0-v255
2014-05-15 10:39:50
859
原创 Dalvik反汇编代码解析
指令格式标识的类型码助记符位大小说明b88位有符号立即数c16,32常量池索引f16接口常量(仅对静态链接格式有效)h16
2014-05-14 09:58:35
1093
原创 错误集与解决方案
1 . CreateProcess失败返回错误代码998解决方案: STARTUPINFO si;memset(&si,0,sizeof(si));PROCESS_INFORMATION pi;memset(&pi,0,sizeof(pi));
2014-05-12 22:16:12
676
原创 异常处理的基本过程
因为有多种异常,系统首先判断异常是否应发送给目标程序,如果应该发送,并且目标程序正处于被调试状态,则系统挂起程序,填写如下结构:typedef _EXCEPTION_DEBUG_INFO{EXCEPTION_RECORD ExceptionRecord;DWORD dwFirstchance;}EXCEPTION_DEBUG_INFO; 将程序dwFirstchance
2014-05-12 22:12:47
983
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人