Sublime Text 2.0 简单分析
HomePage:http://www.sublimetext.com/一款非常优秀的代码编写器,近乎是免费的,简单看下验证流程。
搜索unicode : unreg
013AE8BA|.BE 8C9E6001 mov esi, 01609E8C ;sublime text 2
013AE8BF|.DD58 10 fstp qword ptr
013AE8C2|.DD58 18 fstp qword ptr
013AE8C5|.E8 46FEFFFF call 013AE710
013AE8CA|.83C4 2C add esp, 2C
013AE8CD|.803D 88076C01>cmp byte ptr , 0// 对这个全局变量下硬件访问断点
013AE8D4|.0F84 0D020000 je 013AEAE7 // 跳转来自于这里
......
013AEAE5|. /EB 63 jmp short 013AEB4A
013AEAE7|> |DD4424 40 fld qword ptr
013AEAEB|. |8B5424 2C mov edx, dword ptr
013AEAEF|. |DD05 D0376001 fld qword ptr
013AEAF5|. |8B7A 64 mov edi, dword ptr
013AEAF8|. |DCC1 fadd st(1), st
013AEAFA|. |B0 FF mov al, 0FF
013AEAFC|. |884424 28 mov byte ptr , al
013AEB00|. |884424 29 mov byte ptr , al
013AEB04|. |DEC1 faddp st(1), st
013AEB06|. |884424 2A mov byte ptr , al
013AEB0A|. |884424 2B mov byte ptr , al
013AEB0E|. |8B4C24 28 mov ecx, dword ptr
013AEB12|. |51 push ecx
013AEB13|. |83EC 28 sub esp, 28
013AEB16|. |DD5C24 20 fstp qword ptr
013AEB1A|. |8BC4 mov eax, esp
013AEB1C|. |DD4424 74 fld qword ptr
013AEB20|. |BE 6C9E6001 mov esi, 01609E6C ;unregistered
启动时中断在这里:
002CEDE2 .E8 C9BBFFFF call 002CA9B0
002CEDE7 .83C4 0C add esp, 0C
002CEDEA .8D4C24 04 lea ecx, dword ptr
002CEDEE .A2 88075800 mov byte ptr , al // 典型的全局变量验证模型
002CEDF3 .C74424 28 FFFFFFFF mov dword ptr , -1
提取一组特征码:
E8 ?? ?? ?? ?? 83 C4 0C 8D 4C 24 04 A2 ?? ?? ?? ?? C7 44 24 28 FF FF FF FF
跟进Call 看一下:
本地调用来自 002CB321, 002CEDE2// 两处调用 应该是一处注册 一处启动验证
002CA9B0/[ DISCUZ_CODE_1 ]nbsp; 6A FF push -1
002CA9B2|.68 C4C84A00 push 004AC8C4 ;SE 处理程序安装
002CA9B7|.64:A1 0000000>mov eax, dword ptr fs:
002CA9BD|.50 push eax
002CA9BE|.64:8925 00000>mov dword ptr fs:, esp
002CA9C5|.83EC 74 sub esp, 74
002CA9C8|.53 push ebx
002CA9C9|.68 98E04C00 push 004CE098 ;30819d300d06092a864886f70d010101050003818b0030818702818100d87ba24562f7c5d14a0cfb12b9740c195c6bdc7e6d6ec92bac0eb29d59e1d9ae67890c2b88c3abdcaffe7d4a33dcc1bfbe531a251cef0c923f06be79b2328559acfee986d5e15e4d1766ea56c4e10657fa74db0977c3fb7582b78cd47bb2c7f9b2 ..
... ...
// 这是什么算法 ... 算法直接跳过看返回值
002CAA50|.68 90E04C00 push 004CE090 ;ea7e
002CAA55|.50 push eax
002CAA56|.FF15 84234C00 call dword ptr [<&MSVCP90.std::operat>;MSVCP90.std::operator!=<char,std::char_traits<char>,std::allocator<char> >
002CAA5C|.83C4 08 add esp, 8
002CAA5F|.84C0 test al, al
002CAA61|.74 07 je short 002CAA6A
002CAA63|>32DB xor bl, bl
002CAA65|.E9 A0020000 jmp 002CAD0A
002CAA6A|>837C24 20 10 cmp dword ptr , 10
002CAA6F|.8B4424 0C mov eax, dword ptr
002CAA73|.73 04 jnb short 002CAA79
002CAA75|.8D4424 0C lea eax, dword ptr
002CAA79|>50 push eax ; /s
002CAA7A|.FF15 D0264C00 call dword ptr [<&MSVCR90.atoi>] ; \atoi
.....
/// 看函数返回值
002CAD55|.8B4C24 78 mov ecx, dword ptr
002CAD59|.8AC3 mov al, bl// 爆破点mov al,1
002CAD5B|.5B pop ebx
002CAD5C|.64:890D 00000000 mov dword ptr fs:, ecx
002CAD63|.81C4 80000000 add esp, 80
002CAD69\.C3 retn
提取特征码:
8B 4C 24 78 8A C3 5B 64 89 0D 00 00 00 00 81 C4 80 00 00 00 C3
8B 4C 24 78 B0 01 5B 64 89 0D 00 00 00 00 81 C4 80 00 00 00 C3
定位特征码破解 还是选取算法call的返回值时机。
谢谢校长。做下校长的沙发。这个软件很好用。 膜拜中,算法是RSA。 来学习N大的分析
一直用Notepad++
试用一下这个软件 本帖最后由 13595485 于 2014-12-26 15:53 编辑
感谢N大,这么酷啊。赶紧收藏一份去{:soso_e102:}
我来补个中文包
下载文件解压后放进安装目录Sublime Text 2\Packages 下面即可。
感谢分享,收藏 哈哈支持一下。 学习N大分享!回馈PYG,特意{:soso_e144:}前来跪舔校长!!!大腿也一并抱了!! 好东西谢谢楼主! 楼主, 你的最后没那个算法代码怎么用易语言表示
页:
[1]
2