逆向入门思路

学习逆向分析已经有一段时间了,一切从无到有,从生疏到开始逐渐掌握一点点门道。今天将自己的经验做个记录,希望能大家能共同交流一起进步:
    对于一个刚刚入门软件破解的新手来说,最基础也是最关键的就是下断,下断下的好坏,直接影响着一个程序能否快速的找到关键代码段,进而逆向其算法写出注册机或者爆破掉。
   而一般的下断思路,无非以下几种
      1 特殊函数下断(关键函数请看另一篇日志http://blog.csdn.net/u011775291/article/details/37775291)
      2 关键字符串下断,一般提示注册成功或者失败的参考字符串,然后分析跳转的来自方向,就能找到关键代码了。
      3 按钮事件下断,按钮触发一系列事情经过就叫着按钮事件,那么这个按钮就叫事件按钮。一般常用于窗口程序,能迅速断在关键地方。
      4 消息下断,个人不太喜欢这种下断方式,因为很多时候都会停在dll中,然后在广袤的系统代码里迷失了自己的方向。不过这也是一种思路,可以尝试一下。
(之前看到过有人问怎么下消息断点,这里我在重复一下方法,
1. 打开程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 表达式: MSG
7. 记录函数参数:永远


如果你不能找到它,试试右击鼠标,然后搜索全部模块中的名称。
但是如果我想要捕捉一个特定的消息如WM_COMMAND呢?
只对WM_COMMAND记录
用这个方法做:
1. 打开一个程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 条件框:MSG==WM_COMMAND
7. 记录函数参数: 条件满足时
如果你不能找到User32.TranslateMessage API,象上面那样做。
一般常用的消息类型:
WM_LBUTTONDOWN,WM_KEYDOWN  ,VK_SHIFT,WM_KEYDOWN,WM_CHAR ,WM_KEYUP 


5 对于部分语言编写的程序可以用特定的软件先做分析,比如delphi编写的程序可以用dede分析按钮事件,这样效率也很高。
      6 如果上面方式都有尝试,但都木有成功,那么,我就会一步步跟了,这种方法虽然原始但却有效哈哈。

软件破解分类:
1序列号
消息断点(WM_LBUTTONDOWN/WM_LBUTTONUP)
API下断
字符串比较
2 KeyFile(CHECK-CD)
FindFirstFileA        确定注册文件是否存在
CreateFileA        确定并打开句柄
GetFileSize
GetFileAttributes
ReadFile
主要是伪造keyfile

CDKEY:
GetLogicalDriveStrings()  GetLogicalDrivers()
GetDriveType()
CreateFileA()  FindFirstFileA()


3 nag窗口
常用api
MessageBOX, 
DialogBoxParam, 
ShowWwindow,
CreateWindowExa
一般nag窗口是通过调用资源来显示对话框的,所用用eXeScope或者Resource Hacker打开
4 网络验证:
找到send和recv函数
int send(
  SOCKET s,
  const char FAR* buf,
  int len,
  int flags
);
int recv(
  SOCKET s,
  char FAR* buf,
  int len,
  int flags
);
一般是写一个本地服务端模拟服务器
5 时间限制
使用SetTimer函数向系统申请一个计时器,当在超时时调用一个回调函数或者是发送WM_TIMER
UINT SetTimer(
  HWND hWnd,
  UINT nIDEvent, 
  UINT uElapse, 
  TIMERPROC lpTimerFunc 
); 
GetLocalTime 获取本地时间 
GetSystemTime 获取系统时间 
GetTickCount系统自启动后经过的毫秒数
GetFileTime 获取文件时间
辅助工具:变速齿轮,可以缩短调试所需要的时间
6 菜单功能限制:
一般都会调用函数EnableMenultem,或者EnableWindow

关于针对各种函数各种语言各种事件的断点,之前看别人总结过,下面贴上下载地址,供大家参考:
http://download.csdn.net/detail/nightsay/8296969


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章