《逆向工程核心原理》书本案例

第二单元:helloword.c

#include "windows.h"
#include "tchar.h"
int _tmain(int argc,TCHAR *argv[])
{
	MessageBox(NULL,
				"Hello world!",
				"WWW.baidu.com",
				MB_OK);
	return 0;
} 

 

第三单元:LittleEndian.cpp  

#include "windows.h"

BYTE b = 0x12;
WORD w = 0x1234;
DWORD dw = 0x12345678;
char str[]="abcde";

int main(int argc,CHAR *argv[])
{
	byte lb = b;
	WORD lw = 0x1234;
	DWORD ldw = dw;
	char *lstr = str;
	
	return 0;
} 

第六章:abex's crackme#1

https://pan.lanzou.com/1094038

第七章:StackFrame.c

#include "stdio.h"

long add(long a, long b)
{
    long x = a, y = b;
    return (x + y);
}

int main(int argc, char* argv[])
{
    long a = 1, b = 2;
    
    printf("%d
", add(a, b));

    return 0;
}

第八章:abex's crackme2#2

http://pan.baidu.com/s/1qXhyt8C

 这个真的调试了好久,后来才知道是需要把所有的代码都运行完毕,然他后面计算出正确的serial再进行分析的而不是停在0x403329   Orz。

 第十章:cdecl.cpp , stdcall.cpp

#include "stdio.h"

int add(int a, int b)
{
    return (a + b);
}

int main(int argc, char* argv[])
{
    return add(1, 2);
}
#include "stdio.h"

int _stdcall add(int a, int b)
{

    return (a + b);
}

int main(int argc, char* argv[])
{
    return add(1, 2);
}

VS 6关闭优化:经实测最好用release编译出来的的用户体验感最好〒▽〒

 第十三章:

原文地址:https://www.cnblogs.com/chrysanthemum/p/11780321.html