- 博客(35)
- 收藏
- 关注
转载 OD的字符串断点
前言看到CreateFileA时,别人下OD的字符串断点. 回来查了资料,做了试验, 确实可以.记录 OLLYDBG.HLP <>节对下断点时的表达式写法有说明. OllyDbg supports very complex expressions. Formal grammar of expressions is described at the end of this topic, but
2016-09-27 18:26:00 1703
转载 MFC消息映射表内存布局
前言Demo是MFC静态连接的程序. 框架代码太多了. 不可能像SDK程序那样,一个一个去看. 找到MFC程序消息映射表在内存中的布局,直接看消息映射函数, 这样可操作性强.试验在IDA中按CTRL+S, 跳到.rdata区 依次摆放的是类A消息映射表, 虚表, 类B消息映射表, 虚表… 不同类或同类的不同部分之间,用单位size内容为0的数据隔开.struct AFX_MSGMAP{#i
2016-09-23 01:47:01 1038
转载 DotNet程序的判断依据
前言今天看到一个Demo,可以为DotNet程序生成调试用的ini. 这个资料在MSDN上有 : https://msdn.microsoft.com/en-us/library/9dd8z24x(v=vs.110).aspx 我好奇的是Demo如何判断指定程序是否为DotNet程序. 特意做了一个vc的测试程序,Demo判断这不是DotNet程序,看来不是为所有程序都生成ini, 而是真的判
2016-09-22 00:54:42 613
转载 找到一个hash函数
前言在lua5.3.3代码中看到一个hash函数,摘出来玩玩。试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <stdio.h>#include <math.h>#in
2016-09-20 17:37:19 925
转载 算法还原练习-20160920
前言今天还原一个Demo的算法,程序是vc6写的c++程序。 程序比较小,几十KB. 将每个函数都扫了一遍,初步的命名。找到了疑似算法的周边函数. 但是如何按照程序流程走到算法函数执行的事情上,出了点问题。 IDA分析全局类方法偏移时,将函数列表后面标成对齐值了, 和算法相关的成员函数偏移被挡在对齐值的后面. 不知道哪里调用的。 后面修正了类方法偏移表后面的对齐值为成员函数地址(验证了一下,
2016-09-20 01:20:00 964
转载 类内存布局中的虚表项空间占用
前言今天发现一个类,手工算的不对, 写了测试程序发现,虚表项的空间占用也有可能不是4个字节, 和数据成员基本数据类型的最大size有关。记录// testCase1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <Wincry
2016-09-19 22:01:29 667
转载 CryptCreateHash + CALG_MD5
前言看见反汇编中有一段算md5的代码,记录一下。记录// testCase1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <Wincrypt.h>#include <stdlib.h>#include <stdio.h>
2016-09-19 13:38:46 1739
转载 get c_function* from lua_State*
前言lua_State中有C程序注册到lua的接口函数指针 不同版本的lua可能不同吧,见到5.1.5和5.3.3不同. 将lua5.3.3的宏拆掉,看到了从lua_State*得到c_fuction*的过程试验对于一个L, 从头到尾是不变的. 当执行C接口函数时, 看到栈回溯上经过了luaV_execute, 在这里计算了L中f的值. f的值在内存中,就是用户接口的地址. luaV_ex
2016-09-18 01:36:20 536
转载 hello lua
前言lua初体验, 用lua-5.3.3做了一次试验.记录// MyLuaTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <stdio.h>// 参考资料// http://l
2016-09-17 19:41:43 622
转载 _cinit
前言如果有全局类数组,在main之前类数组会被初始化, 类的构造会被调用. 全局类的初始化由_cinit的第二个_initterm发起.记录_cinit 在\VC98\CRT\SRC\CRT0DAT.Cvoid __cdecl _cinit ( void ){ /* * initialize floating point pack
2016-09-16 15:28:16 1440
转载 maze
前言要做还原练习,手头的Demo有BUG, 想找个小程序来练习. 在CSDN上看到一个控制台迷宫的课程设计, 用栈来实现迷宫的寻路. 围观了人家的设计文档, 将附带的程序学习整理了一下,明天做还原练习. 作为课程设计的最终成果,我觉得那个程序细节上写的还可以完善, 感觉有点糙.UI整理后的代码和原始程序一样,都写在一个cpp里面了./// @file \maze\maze.cpp#
2016-09-15 21:22:22 520
转载 'inline' is the only legal storage class for constructors
前言如果构造函数前面加上虚函数修饰,就会报错: ‘inline’ is the only legal storage class for constructors记录// Obj5.h: interface for the CObj5 class.////////////////////////////////////////////////////////////////////////#i
2016-09-13 21:08:28 1282
转载 strcpy的内联实现
前言strcpy在release版中都会内联实现. 为了突出strcpy内联,封装了一个fnStrcpy做试验. strcpy算串长度和拷贝都很简洁. 拷贝时,优先按照4字节拷贝,最后不足4字节的串尾部分,再按照1字节拷贝.IDA笔记.text:00401000 ; =============== S U B R O U T I N E ============================
2016-09-12 18:18:48 595
转载 还原自己写的冒泡排序
试验自己的源码// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <stdio.h>#include <math.h>#include <stddef.h>#define AR
2016-09-11 22:13:44 493
转载 查看google快照
前言有时,遇到删贴,可能想围观下删贴前的打架场面。就需要查看google快照了:)资料http://webcache.googleusercontent.com/search?q=cache:dst_url将dst_url换成真实的目标url, 就可以看到google做的缓存页面. 冷门的url快照可能是10天以前的,热门或新帖,可能就是昨天的.e.g. http://webcache.goo
2016-09-11 11:34:23 12061
转载 有符号数除以非-2的幂(MagicNumber为正)
前言试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnIdivNeg3(int x) { printf("==========\r\n"); printf("%d\
2016-09-10 22:49:36 605
转载 有符号数除以非-2的幂(MagicNumber为负)
前言试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnIdivNeg33(int x) { printf("==========\r\n"); printf("%d
2016-09-10 22:04:37 533
转载 有符号数除以-2的幂
前言试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnIdivNeg2(int x) { printf("==========\r\n"); printf("%d\
2016-09-10 21:16:37 582
转载 有符号数除以非2的幂(MagicNumber为负)
前言 试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnIdiv28(int x) { printf("==========\r\n"); printf("%
2016-09-10 20:16:05 501
转载 无符号数除以非2的幂(MagicNumber有进位)
前言 试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnDiv7(UINT x) { printf("==========\r\n"); printf("%d
2016-09-10 19:43:19 551
转载 有符号数除以非2的幂
前言 当x为有符号数时, 此公式适用. 此公式推导的前提是 x < 0. 看着公式,再对着反汇编代码看,感觉不一样,不用硬背了. 随着编译器生成的c不同,有可能n就是32, 不再需要右移了. 但是最后的-x+1的动作还是有的(x > 0时, 等于 + 0, 和无符号除以非2的幂相同了).试验// hw.cpp : Defines the entry point for the cons
2016-09-10 18:24:24 536
转载 无符号数除以非2的幂
前言 无符号(x > 0)时, 此公式适用.试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnDiv3(UINT x) { printf("==========\r\
2016-09-10 17:53:14 508
转载 有符号数除以2的幂
前言“有符号数除以2的幂”反汇编代码, 也适用于”无符号数除以2的幂” 只是编译器为了效率,要分开这两种情况.试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnIdiv2(int
2016-09-10 14:06:51 879
转载 无符号数除以2的幂
前言除法中,这种情况最直观试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>void fnDiv2(UINT x) { printf("==========\r\n"); pri
2016-09-10 13:47:55 643
转载 结构体内存对齐规则
前言今天又听了一遍结构体内存对齐规则,明白了 按照结构体内存规则来计算, 再遇到结构体套结构体或结构体套数组的情况, 也能计算清楚。试验// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdlib.h>#include <stdio.h>#inc
2016-09-09 20:11:08 730
转载 质数筛法的分析
前言同学写了一小段C代码,编译成Release版给大家玩. 在IDA中分析了一次, 记录一下.记录.text:00401000 ; int __cdecl main(int argc, const char **argv, const char **envp).text:00401000 _main proc near ; CODE XREF: s
2016-09-09 00:46:09 548
转载 用命令行开关UAC
前言–在一个程序中, 看到她运行了一个命令行, google了一下, 原来是用命令行关UAC.记录–There’s a quick way you can enable or disable this annoying window from the command line:Disable UACC:\Windows\System32\cmd.exe /k %windir%\System32
2016-09-07 00:51:08 3180
转载 C语句和反汇编代码对照表
前言现在还记不住C语句和对应的反汇编代码的关系,先记录一下。代码对应关系无符号数除以2的幂int main(int argc, char* argv[]){ // hw1_1 验证 : 无符号数除以2的幂 UINT uIn = (UINT)argc; printf("%d\r\n", uIn/2); printf("%d\r\n", uIn/4); print
2016-09-06 09:49:01 1511
转载 汇编指令助记符含义
前言有些指令, 可能自己曾经没记住, 或不理解为啥是这样命名, 在这里记录一下.助记符RETN在指令手册中是找不到RETN的, 只有RET. 在IDA和OD中可以看到助记符写为RETN. 这是因为RETN代表 ret near procedure RETN返回的地址离RET所在的地址都很近.enter为进程设立栈帧 一个带壳的程序,上来就是这么一句. enter 0x18C,0x0
2016-09-05 20:16:16 3634
转载 变参函数的实现
前言查资料, 对变参函数的实现, 做个笔记知识点不定参一定是__cdecl调用, 在函数调用后平栈. 不定参的判断有3种情况(至少是一个参数, 否则无法判断函数参数个数): 1.参数类型相同, 不指定参数个数, 在传参时, 最后一个参是0 在函数内, 将第一个参数的地址作为参数指针,逐个取出, 如果不为参数0, 就继续取用, 如果为0, 就判断为参数结束.2.参数类型相同, 指定参数个数为参数
2016-09-05 19:06:34 579
转载 CD检测代码的定位练习-20160905
前言一个老程序弹出CD检测的提示, 去看了下。 定位了CD检测代码, 人家做的还挺好, 不光检测CD在不在, 程序中还用到了CD里的数据.实验记录当弹出CD插入提示后, 用OD定位到CD检测代码.弹出需要CD提示时,回溯到CD检测代码004DA9D4 |. /75 47 jnz short 004DAA1D004DA9D6 |> |8B45 08 /mo
2016-09-05 00:10:08 906
转载 xmod文件信息的显示
前言从网上找到了一段显示.xmod文件信息的代码, 整理了一下.demo// xmodFileInfo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdlib.h>#include <stdio.h>#include "xmod.h"int main(int
2016-09-04 11:04:32 1345
转载 在直线上画箭头的实现
前言在练习用的画图工程上,原来画线是没有箭头的.看见有个软件有画箭头的功能,要求加上.自己先画了一下,没实现功能,挫~逆向了那个软件的画箭头的实现,逆向出来,没怎么整理呢,功能已经不对了~算法是对的,箭头已经画出来了,就是位置各种不对。又不想从头再逆一回。就调试了一下原始画箭头算法的实现,整理出来可用. 感觉比原始代码要精干:)抄别人代码就是比自己直接写感觉要好,不会出现吭哧吭哧不出来
2016-09-03 17:14:08 4190
转载 用VC6命令行编译工程
前言今天正好说到CL.exe的版本问题, 顺手做个用命令行编译VC6工程的试验.VC6的cl.exe最新版本是 12.0.8804cl.exe版本不同, 生成的反汇编代码就不同(优化手段不同)D:\>clMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86Copyright (C) Micro
2016-09-02 18:20:45 1170
转载 汇编版无分支取绝对值
前言无分支算法可以不打破CPU流水线, 提高运行效率.试验记录// hw.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <stdio.h>// 汇编版无分支取绝对值int fnAbs(
2016-09-01 19:41:03 2662
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关注的人