某软件爆破及算法不完全分析
【文章标题】: 某软件爆破及算法不完全分析【软件名称】: -
【软件大小】: 5M
【下载地址】: 自己搜索下载
【加壳方式】: 无
【保护方式】: -
【编写语言】: Microsoft Visual C++ 5.0
【操作平台】: WIN2003
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
00469B70 > \55 push ebp
.
00469C66 .8D85 C8FEFFFF lea eax, dword ptr ;取机器码
00469C6C .50 push eax
00469C6D .E8 CC76F9FF call 0040133E ;F7进入算法区
.
.
00469CAC .8B85 D0FEFFFF mov eax, dword ptr
00469CB2 .25 FF000000 and eax, 0FF
00469CB7 .85C0 test eax, eax
00469CB9 0F84 A1010000 je 00469E60 //爆破点
00469CBF .E8 DEFC0600 call <jmp.&MFC42D.#1087>
00469CC4 .C780 F0000000>mov dword ptr , 0
00469CCE .8BF4 mov esi, esp
00469CD0 .8D8D E4FEFFFF lea ecx, dword ptr
00469CD6 .51 push ecx ; /pHandle
00469CD7 .6A 01 push 1 ; |Access = KEY_QUERY_VALUE
00469CD9 .6A 00 push 0 ; |Reserved = 0
00469CDB .68 D0BD5700 push 0057BDD0 ; |software\microsoft\dataaccess\rootbinder\bin
00469CE0 .68 02000080 push 80000002 ; |hKey = HKEY_LOCAL_MACHINE
00469CE5 .FF15 24B55900 call dword ptr [<&ADVAPI32.RegOpenKey>; \RegOpenKeyExA
00469CEB .3BF4 cmp esi, esp
算法核心代码:
004BA774 . /EB 09 jmp short 004BA77F
004BA776 > |8B4D E0 mov ecx, dword ptr ;/////////
004BA779 . |83C1 01 add ecx, 1
004BA77C . |894D E0 mov dword ptr , ecx
004BA77F > \8D4D F0 lea ecx, dword ptr ;LEA 有效地址传诵指令
004BA782 .E8 07F70100 call <jmp.&MFC42D.#2640>
004BA787 .3945 E0 cmp dword ptr , eax ;eax为机器码位数8与ebp-20计算,是否还需要计算注册码
004BA78A .7D 71 jge short 004BA7FD
004BA78C .8B55 E0 mov edx, dword ptr ;ebp-20=00000=edx
004BA78F .52 push edx
004BA790 .8D4D 0C lea ecx, dword ptr ;c=0代表是最开始的一位
004BA793 .E8 5AFF0100 call <jmp.&MFC42D.#850>
004BA798 .8845 EC mov byte ptr , al ;取机器码第N位+上一注册码的十进制
004BA79B .8A45 EC mov al, byte ptr
004BA79E .0245 E0 add al, byte ptr ;相加
004BA7A1 .8845 EC mov byte ptr , al
004BA7A4 .0FBE4D EC movsx ecx, byte ptr
004BA7A8 .6BC9 07 imul ecx, ecx, 7 ;Q=整数81*7=567 这句是整数相乘 寄存器是为其16进制
004BA7AB .884D EC mov byte ptr , cl
004BA7AE .0FBE45 EC movsx eax, byte ptr
004BA7B2 .99 cdq ;双字扩展. (把EAX中的字的符号扩展到EDX中去)
004BA7B3 .B9 0A000000 mov ecx, 0A ;0A转10进制=10,原ECX=十进制Q(51)*7=587=237(16进制)
004BA7B8 .F7F9 idiv ecx ;除10
004BA7BA .52 push edx ;edx值计算出来就是注册码
算法大致分析为:(机器码转十六进制+机器码第几位)*7/0A
希望大牛指点。技术不过关。。。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于飘云阁, 转载请注明作者并保持文章的完整, 谢谢!
2009年02月26日 19:55:55
附件上传不了。传到了QQ中转站
http://62.dc.ftn.qq.com/ftn_handler/1576f5254d47f36212d3486106094d3c76221139544f5c0ab0e1938bd5adff841dc36b66342d50d1d59a34ef4853256aa28d061b3075c61ce62a9924c00a54b4/nout.rar?k=5a64326411d9409e49eb75641037074e54070250540f07004b575305521a015654021f5d550f574c03075106550f00505f060702363f350f0911464a44564761 提取码 fd2d675a
[ 本帖最后由 cjteam 于 2009-2-26 20:04 编辑 ] 不错,来学习了 楼上的也不帮忙分析下。,555 看来我的功力还是不够啊 !~~~看的还不是很懂!~~~继续努力中!~~~~顶起!~~ 菜鸟帮顶!/:good /:good /:good 兄弟!你这样还真有点像变相求破啊!这个软件一看就知道作者花了不少心思去写的.不过加密还不过关,要破解也不难!如果你的OD技术过关的话你要破来自己用是没问题的,你说的爆破点.根本只是镜花水月!/:L /:L 要是真想破掉他的话你就多多努力吧!只能无语!/:001 /:001 /:001 原帖由 as3852711 于 2009-3-3 18:32 发表 https://www.chinapyg.com/images/common/back.gif
兄弟!你这样还真有点像变相求破啊!这个软件一看就知道作者花了不少心思去写的.不过加密还不过关,要破解也不难!如果你的OD技术过关的话你要破来自己用是没问题的,你说的爆破点.根本只是镜花水月!/:L /:L 要 ...
首先说明,软件是2004年的,软件公司已倒闭了!
软件明码已追到了,自用应是没问题吧,另外关于我说的爆破点,破了,确实可以无限用!
多谢兄弟的交流,另外说句,最近看些算法文章多一点,发现熟读算法300篇,傻子也会分析 原帖由 cjteam 于 2009-3-4 11:33 发表 https://www.chinapyg.com/images/common/back.gif
首先说明,软件是2004年的,软件公司已倒闭了!
软件明码已追到了,自用应是没问题吧,另外关于我说的爆破点,破了,确实可以无限用!
多谢兄弟的交流,另外说句,最近看些算法文章多一点,发现熟读算法30 ...
呵呵!那是我说错了!这个软件关键是你懂不懂C语言的运算机制!我也不懂C所以写不出注册机来!多的不能说了,自己看部分代码吧!我还在写!/:002 /:002 /:002
/ ceshi.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
char a,b,c,d,e;//定义5个字符型的变量;
int i,x; //定义2个整数型的变量;
scanf("%c",&a);//接受字符变量输入;
b=a*7;//字符变量ASCII值乘于7;
i=b; //字符变量强制转化成整数型;
c=i; //整数变量又强制转化成字符型;
d=c%10; //字符变量ASCII值除于10取余数;
x=d;//字符变量强制转化成整数型;
e=x;//整数变量又强制转化成字符型;
printf("%c\n%c\n%d\n%c\n%c\n%d\n%c\n%c\n%d\n%c\n",a,b,i,c,d,x,e);
return 0;
}
现在还不懂用循环和最后的那一不"-5"变"-"/:002 /:002 /:002
[ 本帖最后由 as3852711 于 2009-3-4 14:16 编辑 ] 看了下,如下图
分析见https://www.chinapyg.com/viewthread.php?tid=43645&extra=&frombbs=1
[ 本帖最后由 lzq1973 于 2009-3-5 18:10 编辑 ] :loveliness: 樓上的大牛,文件发送给你了!。
去参考一下C语言的运算机制,多谢as3852711 的指点
感谢lzq1973!!
[ 本帖最后由 cjteam 于 2009-3-6 12:53 编辑 ]
页:
[1]
2