首页
社区
课程
招聘
碰到了比较棘手的算法,请教应该如何解决,望高人指点。
发表于: 2012-5-5 13:38 9186

碰到了比较棘手的算法,请教应该如何解决,望高人指点。

2012-5-5 13:38
9186
小弟最近在分析一个算法,想知道这个算法之前的原文(参数)是什么。
但目前由于汇编代码太多(240w行左右),始终无法找到原文。

算法会根据异或等操作决定跳到哪一个代码块,到这里可能会进行一些异或等操作计算字串,又或者根据对照字符对照出一段字串,又或者将字串复制到另一个地址。

反复执行以上操作。

而函数的参数是一个全局变量,这个全局变量什么时候变的我也不清楚。

现在我想找到原文,使用 call 的方式模拟出这套算法的加密,请问我应该怎么找到原文呢?
分析它感觉就是无底洞,走不到头。

若哪位大大有空,帮我分析并给予一定指点,我愿意支付k以上报酬。
万分感谢。 QQ: 936903837

类似这样的结构有很多个:
10A6C72B   .  8985 78FCFFFF mov     dword ptr ss:[ebp-388], eax
10A6C731   .  8B8D 78FCFFFF mov     ecx, dword ptr ss:[ebp-388]
10A6C737   .  81C1 167B0445 add     ecx, 45047B16
10A6C73D   .  898D 78FCFFFF mov     dword ptr ss:[ebp-388], ecx
10A6C743   .  83BD 78FCFFFF>cmp     dword ptr ss:[ebp-388], 45
10A6C74A   .  0F87 6B010000 ja      10A6C8BB
10A6C750   .  8B95 78FCFFFF mov     edx, dword ptr ss:[ebp-388]
10A6C756   .  FF2495 04FBA6>jmp     dword ptr ds:[edx*4+10A6FB04]
10A6C75D   >  E9 5E010000   jmp     10A6C8C0
10A6C762   >  E9 83010000   jmp     10A6C8EA
10A6C767   >  E9 DC030000   jmp     10A6CB48
10A6C76C   >  E9 01040000   jmp     10A6CB72
10A6C771   >  E9 0B060000   jmp     10A6CD81
10A6C776   >  E9 30060000   jmp     10A6CDAB
10A6C77B   >  E9 56060000   jmp     10A6CDD6
10A6C780   >  E9 74060000   jmp     10A6CDF9
10A6C785   >  E9 0B080000   jmp     10A6CF95
10A6C78A   >  E9 29080000   jmp     10A6CFB8
10A6C78F   >  E9 4F080000   jmp     10A6CFE3
10A6C794   >  E9 E9090000   jmp     10A6D182
10A6C799   >  E9 1E0A0000   jmp     10A6D1BC
10A6C79E   >  E9 FD0B0000   jmp     10A6D3A0
10A6C7A3   >  E9 290C0000   jmp     10A6D3D1
10A6C7A8   >  E9 450D0000   jmp     10A6D4F2
10A6C7AD   >  E9 6B0D0000   jmp     10A6D51D
10A6C7B2   >  E9 FA0E0000   jmp     10A6D6B1
10A6C7B7   >  E9 9B100000   jmp     10A6D857
10A6C7BC   >  E9 AC100000   jmp     10A6D86D
10A6C7C1   >  E9 1C130000   jmp     10A6DAE2
10A6C7C6   >  E9 1C130000   jmp     10A6DAE7
10A6C7CB   .  E9 2D130000   jmp     10A6DAFD
10A6C7D0   >  E9 3F130000   jmp     10A6DB14
10A6C7D5   >  E9 60150000   jmp     10A6DD3A
10A6C7DA   >  E9 85150000   jmp     10A6DD64
10A6C7DF   >  E9 97150000   jmp     10A6DD7B
10A6C7E4   >  E9 A8150000   jmp     10A6DD91
10A6C7E9   >  E9 02160000   jmp     10A6DDF0
10A6C7EE   >  E9 23160000   jmp     10A6DE16
10A6C7F3   >  E9 46160000   jmp     10A6DE3E
10A6C7F8   >  E9 58160000   jmp     10A6DE55
10A6C7FD   >  E9 7D160000   jmp     10A6DE7F
10A6C802   >  E9 A3160000   jmp     10A6DEAA
10A6C807   >  E9 57180000   jmp     10A6E063
10A6C80C   >  E9 B21A0000   jmp     10A6E2C3
10A6C811   >  E9 C31A0000   jmp     10A6E2D9
10A6C816   >  E9 D41C0000   jmp     10A6E4EF
10A6C81B   >  E9 CD1E0000   jmp     10A6E6ED
10A6C820   >  E9 EF1E0000   jmp     10A6E714
10A6C825   >  E9 0C1F0000   jmp     10A6E736
10A6C82A   >  E9 1B1F0000   jmp     10A6E74A
10A6C82F   >  E9 411F0000   jmp     10A6E775
10A6C834   >  E9 6B1F0000   jmp     10A6E7A4
10A6C839   >  E9 8E1F0000   jmp     10A6E7CC
10A6C83E   >  E9 B41F0000   jmp     10A6E7F7
10A6C843   >  E9 BB200000   jmp     10A6E903
10A6C848   >  E9 DC200000   jmp     10A6E929
10A6C84D   >  E9 97220000   jmp     10A6EAE9
10A6C852   >  E9 BC230000   jmp     10A6EC13
10A6C857   >  E9 E1240000   jmp     10A6ED3D
10A6C85C   >  E9 DD250000   jmp     10A6EE3E
10A6C861   >  E9 02260000   jmp     10A6EE68
10A6C866   >  E9 86260000   jmp     10A6EEF1
10A6C86B   >  E9 AC260000   jmp     10A6EF1C
10A6C870   >  E9 D2260000   jmp     10A6EF47
10A6C875   >  E9 D3280000   jmp     10A6F14D
10A6C87A   >  E9 FF280000   jmp     10A6F17E
10A6C87F   >  E9 25290000   jmp     10A6F1A9
10A6C884   >  E9 FB2A0000   jmp     10A6F384
10A6C889   >  E9 1C2B0000   jmp     10A6F3AA
10A6C88E   >  E9 412B0000   jmp     10A6F3D4
10A6C893   >  E9 062E0000   jmp     10A6F69E
10A6C898   >  E9 272E0000   jmp     10A6F6C4
10A6C89D   >  E9 992F0000   jmp     10A6F83B
10A6C8A2   >  E9 BE2F0000   jmp     10A6F865
10A6C8A7   >  E9 DC2F0000   jmp     10A6F888
10A6C8AC   >  E9 EE2F0000   jmp     10A6F89F
10A6C8B1   >  E9 0F300000   jmp     10A6F8C5
10A6C8B6   >  E9 45300000   jmp     10A6F900
10A6C8BB   >  E9 3D120000   jmp     10A6DAFD

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看似复杂,数据量惊人。不过应该难度不高
2012-5-5 13:45
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但我跟不到原文阿,难度不高但太多了。
2012-5-5 13:54
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶一下,别沉了
2012-5-6 09:48
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
自已写个插件就可以过了
2012-5-6 15:45
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
什么插件
2012-5-6 16:27
0
雪    币: 605
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cfz
7
不懂。进来帮顶下,
2012-5-6 18:18
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
8
+  这是个CS通讯验证过程,采用html方式通讯(Get,Post)。

关键地方就是kbsync的获得。

· 加密算法应该是苹果自己开发的,因为里面MacOS Encoder的关键字符串。
· 加密函数有2个,字面意思应该是:最快速加密,最小加密。

· 下面是他的函数申明,这个东西用IDA打开 CoreFoundation.dll(注意,这个文件并不在安装目录,而在系统公共目录),
    很容易找到的。
                public CFStringGetSmallestEncoding

                public CFStringGetFastestEncoding

上面2个函数,的加密结果都会用到下面的Call再处理一下。
        Call  __CFStringMakeConstantString
        {
       
       
          加密错误提示:  根据这个错误提示的上层Call找找,一定可以找到。
                .rdata:100C85A0 aWarningCfstr@H db 'WARNING: CFSTR("%@") has non-7 bit chars, interpreting using'
                .rdata:100C85A0                 db ' MacOS Roman encoding for now, but this will change. Please '
                .rdata:100C85A0                 db 'eliminate usages of non-7 bit chars (including escaped chara'
                .rdata:100C85A0                 db 'cters above \177 octal) in CFSTR().',0
               
        }
       
        ·我还没有细看,反正加密的时候错误提示这里的上层加密Call有断下来,确定是经过了这里的。
       
        ·经过上面的几个Call处理,会得到一串“AAQAA+6CCxIaQbMp4U6ypW4Udqk9OBhZ26fjGo3u7WRhJEriVpb3cLb/NoubXu7IsJ+L..M40E”
          挺长的大于400h,小于600h的字符串(因为在加密之前memset函数的参数是600h)。
          
          等明天有时间了,再细看一下,现在不看了,因为跟踪了2次,不知道哪里出问题,一直连不上服务器。
          点“AppStore”就马上提示“无法完成您的AppStore请求,发生未知错误(10054)”,,晕,,打不开下载页面,没办法调试了。
          不清楚是帐号被封了,还是服务器挂了。
2012-5-7 02:01
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
9
另外这个软件,exe用VC8以上的版本写的,Dll用不知道什么编译器搞出来的。PEID查不到。但是可以确定是没有加壳,也没有反调试的。OD打开,附加都没问题。
2012-5-7 02:09
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
可以請你解開這個zprotect....或者如果你有一個軟件更改硬件ID.......這個文件是在這個網站:
http://www.4shared.com/rar/Lk0rS9dg/Startup_Disc.html?

如果您有任何程序殺這zprotect文件...請給我鏈接:
roneqwerty@yahoo.com~~V......我可以與大家分享一個很好的數據...

謝謝
2012-5-7 02:12
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
可以請你解開這個zprotect....或者如果你有一個軟件更改硬件ID.......這個文件是在這個網站:

http://www.4shared.com/rar/Lk0rS9dg/Startup_Disc.html?

如果您有任何程序殺這zprotect文件...請給我鏈接:

roneqwerty@yahoo.com
我可以與大家分享一個很好的數據...

謝謝
2012-5-7 02:20
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也被这个加密弄得头大了
2012-8-17 10:47
0
游客
登录 | 注册 方可回帖
返回
//