作者chinoyan ()
看板CodeJob
标题Re: [讨论] 授权逾期?
时间Wed Apr 27 23:13:53 2016
※ 引述《chengcti (版主请投我一票!)》之铭言:
: 花个 30min 做点逆向工程 tracking code
: 1. Delphi 7 + Quickreport + Access 无压缩, 无加壳
: 2. 本来我以为写的多麽的厉害, tracking 到授权程式部分
: 搞了很长的时间 一直陷在里面 本来打算重写好了
: 後来发现那段授权程式 "是垃圾"
: 原本他在每个功能会增加授权机制, 就是可以让多使用者使用
: 依据不同的使用者 可以开启不同的function (新增 删除 修改)
: 这段码是去存取另外一个 table
: 我原本计画重建这个授权的 table (Basicpp)
: 结果发现 "这段是垃圾"
: 因为他根本就没有 call 这段码
: 他只做一个
: 当你去选择 menuitem 上面的功能时 会 check 可不可以进去
: if bAccess then dosomething else ShowMessage('授权逾期')
: cmp [$0048648], 00 ;if bAccess
: jz exit ;jump ShowMessage
: call [$0058304] ;next function
0053F1FC . 803D 2D7E5400>cmp byte ptr ds:[547E2D],0 ;检查授权值是否为假
0053F203 . 74 49 je short 0053F24E ;可NOP此行即可
0053F205 . 8B0D 243A5400 mov ecx,dword ptr ds:[543A24] ;
0053F20B . 8B09 mov ecx,dword ptr ds:[ecx]
0053F20D . B2 01 mov dl,1
0053F20F . A1 20225200 mov eax,dword ptr ds:[522220]
0053F214 . E8 3792F3FF call 00478450
0053F219 . 8B15 083E5400 mov edx,dword ptr ds:[543E08] ;
0053F21F . 8902 mov dword ptr ds:[edx],eax
0053F221 . A1 083E5400 mov eax,dword ptr ds:[543E08]
0053F226 . 8B00 mov eax,dword ptr ds:[eax]
0053F228 . 8B15 98325400 mov edx,dword ptr ds:[543298] ;
0053F22E . 8902 mov dword ptr ds:[edx],eax
0053F230 . A1 083E5400 mov eax,dword ptr ds:[543E08]
0053F235 . 8B00 mov eax,dword ptr ds:[eax]
0053F237 . BA 64F25300 mov edx,0053F264
0053F23C . E8 1B00F2FF call 0045F25C
0053F241 . A1 083E5400 mov eax,dword ptr ds:[543E08]
0053F246 . 8B00 mov eax,dword ptr ds:[eax]
0053F248 . E8 5BD5F3FF call 0047C7A8
0053F24D . C3 retn
0053F24E > B8 94F25300 mov eax,0053F294
0053F253 . E8 D494EFFF call 0043872C
0053F258 . C3 retn
: 3. 本来我想改所 bAccess 把所有的 bAccess remake 掉 (塞 nop)
: 结果又发现 这是初学者写的 所以
: 他在 FormCreate 做了一件事情 (default value)
: bool bAccess := false;
: mov [$0048648], 00 ; bAccess := 0;
: 然後检查日期
: if LeftStr(NowDate) < '2009/xx' then bAccess := true;
: 结果我发现... 我直接把最前面的 default 为 true 就行了
: bool bAccess := true;
: mov [$0048648], 01
: 只改一个 byte
: 30min (price: free)
我是这样弄,授权日是写死在exe里
0053EBCC . BA 90EC5300 mov edx,0053EC90 ; ASCII
0053EBD1 . E8 9657ECFF call 0040436C
0053EBD6 . C605 2D7E5400>mov byte ptr ds:[547E2D],0 ; 将授权值预设为假
0053EBDD . E8 D2C3ECFF call 0040AFB4
0053EBE2 . 83C4 F8 add esp,-8
0053EBE5 . DD1C24 fstp qword ptr ss:[esp]
0053EBE8 . 9B wait
0053EBE9 . 8D85 00FFFFFF lea eax,dword ptr ss:[ebp-100]
0053EBEF . 50 push eax
0053EBF0 . E8 FB10FBFF call 004EFCF0
0053EBF5 . 8D85 00FFFFFF lea eax,dword ptr ss:[ebp-100]
0053EBFB . BA 98EC5300 mov edx,0053EC98 ; ASCII 08,"20091031"
0053EC00 . E8 AB40ECFF call 00402CB0 ; 检查当前日期
0053EC05 . 77 07 ja short 0053EC0E ;如上方CALL返回大於跳
0053EC07 . C605 2D7E5400>mov byte ptr ds:[547E2D],1 ;标记授权为真(小於)
0053EC0E > 33C0 xor eax,eax ;到此行
0053EC10 . 5A pop edx
0053EC11 . 59 pop ecx
0053EC12 . 59 pop ecx
0053EC13 . 64:8910 mov dword ptr fs:[eax],edx
0053EC16 . 68 23EC5300 push 0053EC23
0053EC1B > C3 retn ; RET 用
直接修改 asciiaddr 改为2099年即可,以防原作者在其他地方做检查
--
████ █ ★ ████ █ █ █
█ █ █ █ █ █ 超 级 热 烈 欢 迎
█ ████ █ █ █ ████ █
█ █ █ █ ███★ █ █ 欢迎到嘉义版!
★███ █ █ █ █ █ █ █
讯驰电脑-路径 →
嘉义市林森西路496号 →
(05)2244-526 →
顺发斜对面
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.94.76
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/CodeJob/M.1461770035.A.A5C.html
1F:推 TobyH4cker: 万一2099年还在用呢(X 04/28 14:38
2F:→ Catbert: 反正到时候原PO也早就退休了XDDDDD 04/28 17:35
3F:推 redshoe: 总要留点工作机会给2099後的人 xD 04/28 20:24
4F:→ chinoyan: 补上 OD资料 04/29 13:16
※ 编辑: chinoyan (59.127.94.76), 04/29/2016 13:24:48