欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Mister PiX 算法的简单分析

Mister PiX 算法的简单分析

【文章标题】: Mister PiX 算法的简单分析
【文章作者】: qifeon
【软件名称】: Mister PiX 2.10
【下载地址】: 自己搜索下载
【保护方式】: 注册码
【使用工具】: od,peid
【操作平台】: winxp sp2
【软件介绍】: 可以在 newsgroup 里面寻找指定的图片。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  一、分析过程
  
  1、Peid查壳,显示无壳。编程语言为Borland Delphi 4.0 - 5.0。
  
  2、试运行,输入“qifeon,12345”,有错误提示“”。
  
  3、od载入,查找字符串,没找到。Delphi程序,找到关键点方法很多,如按钮事件代码,F12暂停法等。这里我们使用下API函数下断的方法。
  
  既然有错误对话框,可以考虑使用MessageBoxExA或MessageBoxA,具体用哪个,需要测试,try and error。
  
  *****************************************************************************************************************************
  
  ctrl+N,找到名称位于 MrPix, 条目 309
   地址=0053E644
   区段=.idata
   类型=输入    (已知)
   名称=user32.MessageBoxExA
  
  ******************************************************************************************************************************
  
  右键“在输入函数上下断”,然后F9运行,出现异常,SHIFT+F9几次,出现注册框,输入“qifeon,12345”,点确定
  
  程序断下在系统领空,看堆栈
  
  *******************************************************************************************************************************
  
  0012D4A4   00F31EC8  ASCII "Warning"
  0012D4A8   005292EA  /CALL 到 MessageBoxExA 来自 MrPix.005292E5
  0012D4AC   000D0540  |hOwner = 000D0540 ('Mister PiX',class='TApplication')
  0012D4B0   00F34C4C  |Text = "Username or Private Key don't match.",CR,"Please check your entry."
  0012D4B4   00F31EC8  |Title = "Warning"
  0012D4B8   00000030  |Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
  0012D4BC   00120409  \LanguageID = 120409 (LANG_ENGLISH)
  0012D4C0   0012D5EC  指向下一个 SEH 记录的指针
  0012D4C4   0052930A  SE处理程序
  
  **********************************************************************************************************************************
  
  “Alt+F9”返回,点错误对话框后程序返回到自己代码内
  
  ***********************************************************************************************************************************
  005292E5  |.  E8 9EE1EDFF   call    <jmp.&user32.MessageBoxExA>      ; \MessageBoxExA
  005292EA  |.  8BD8          mov     ebx, eax                           返回处
  005292EC  |.  33C0          xor     eax, eax
  005292EE  |.  5A            pop     edx
  005292EF  |.  59            pop     ecx
  005292F0  |.  59            pop     ecx
  005292F1  |.  64:8910       mov     dword ptr fs:[eax], edx
  
  **************************************************************************************************************************************
  
  向上看,没有跳转可以跳过此对话框。还要继续回溯关键处。可以找到段首下断回溯,这里使用一种快捷些的方法。
  
  向下翻堆栈,找到
  
  0012D5CC  |00F34C4C  ASCII "Username or Private Key don't match.",CR,"Please check your entry."
  0012D5D0  |0012D601
  0012D5D4  |00F31EC8  ASCII "Warning"
  0012D5D8  |0004D87C
  0012D5DC  |00F34C4C  ASCII "Username or Private Key don't match.",CR,"Please check your entry."
  0012D5E0  |0012D704
  0012D5E4  |00514B6E  返回到 MrPix.00514B6E 来自 MrPix.00529134
  0012D5E8  |00000000
  
  ******************************************************************************************************************************************
  
  0左键点击012D5E4  处,右键“反汇编窗口跟随”来到
  
  ********************************************************************************************************************************************
  
  

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功