首页
社区
课程
招聘
哪位老大帮忙看看,这是RSA吗?
发表于: 2005-1-29 12:28 6290

哪位老大帮忙看看,这是RSA吗?

2005-1-29 12:28
6290
006670E8     55                push ebp
006670E9     8BEC              mov ebp,esp
006670EB     83C4 F8           add esp,-8
006670EE     53                push ebx
006670EF     56                push esi
006670F0     57                push edi
006670F1     8B75 08           mov esi,dword ptr ss:[ebp+8]                     ; 104 密钥
006670F4     8B5D 08           mov ebx,dword ptr ss:[ebp+8]
006670F7     81C3 D0000000     add ebx,0D0                                      ; 十进制D0=208 指向密钥208 Byte
006670FD     66:8B06           mov ax,word ptr ds:[esi]                         ; 取密钥Word1
00667100     83C6 02           add esi,2                                        ; 指向下2的地址
00667103     50                push eax
00667104     8B55 08           mov edx,dword ptr ss:[ebp+8]                     ; 104 密钥
00667107     52                push edx
00667108     E8 C3FEFFFF       call FTaxBase.00666FD0                           ;密钥的首地址
0066710D     8BF8              mov edi,eax                                      ;eax=@00666FD0(dekey,word1)
0066710F     83C4 08           add esp,8
00667112     66:8B06           mov ax,word ptr ds:[esi]                         ;取密钥Word2
00667115     83C6 02           add esi,2                                        ;指向Word3
00667118     66:F7D8           neg ax                                           ; 密钥Word2求补码
0066711B     66:8945 FE        mov word ptr Var_Word1,ax                        ;保存
0066711F     83EB 02           sub ebx,2                                        ;ebx-2
00667122     66:8B16           mov dx,word ptr ds:[esi]                         ;取密钥Word3
00667125     83C6 02           add esi,2                                        ;指向word4
00667128     66:F7DA           neg dx                                           ;word3求补
0066712B     66:8955 FC        mov word ptr Var_Word2,dx                        ;保存
0066712F     66:8B0E           mov cx,word ptr ds:[esi]                         ;取密钥word4
00667132     83C6 02           add esi,2                                        ;指向word5
00667135     51                push ecx
00667136     8B45 08           mov eax,dword ptr ss:[ebp+8]                     ; 104 密钥
00667139     50                push eax
0066713A     E8 91FEFFFF       call FTaxBase.00666FD0                           eax=00666FD0(dekey,word4)
0066713F     66:8903           mov word ptr ds:[ebx],ax                         保存计算结果
00667142     83EB 02           sub ebx,2                                        ebx-2
00667145     66:8B55 FC        mov dx,word ptr Var_Word2
00667149     83C4 08           add esp,8
0066714C     66:8913           mov word ptr ds:[ebx],dx                        保存计算结果
0066714F     83EB 02           sub ebx,2                                       ebx-2
00667152     66:8B4D FE        mov cx,word ptr Var_Word1
00667156     66:890B           mov word ptr ds:[ebx],cx                        保存计算结果
00667159     83EB 02           sub ebx,2                                       ebx-2
0066715C     66:893B           mov word ptr ds:[ebx],di                        保存计算结果(第一次调用函数)

0066715F     C745 F8 01000000  mov dword ptr ss:[ebp-8],1                     Var_Dword1=1

00667166     66:8B3E           mov di,word ptr ds:[esi]                       ;取word5
00667169     83C6 02           add esi,2                                      ;指向word6
0066716C     83EB 02           sub ebx,2                                      ;ebx-2
0066716F     66:8B06           mov ax,word ptr ds:[esi]                       ;取密钥word6
00667172     83C6 02           add esi,2                                      ;指向密钥word7
00667175     66:8903           mov word ptr ds:[ebx],ax                       ;保存计算结果
00667178     83EB 02           sub ebx,2                                      ;ebx-2
0066717B     66:893B           mov word ptr ds:[ebx],di                       ;保存计算结果
0066717E     66:8B16           mov dx,word ptr ds:[esi]                       ;取密钥word7
00667181     83C6 02           add esi,2                                      ;指向密钥word8
00667184     52                push edx
00667185     8B4D 08           mov ecx,dword ptr ss:[ebp+8]                   ;104 密钥
00667188     51                push ecx
00667189     E8 42FEFFFF       call FTaxBase.00666FD0                        eax=000666FD0(dekey,word7)
0066718E     8BF8              mov edi,eax                                   
00667190     83C4 08           add esp,8
00667193     66:8B06           mov ax,word ptr ds:[esi]                    ;函数计算结果(地址)                     
00667196     83C6 02           add esi,2                                   ;指向密钥word9
00667199     66:F7D8           neg ax
0066719C     66:8945 FE        mov word ptr Var_Word1,ax
006671A0     83EB 02           sub ebx,2                                   ebx-2
006671A3     66:8B16           mov dx,word ptr ds:[esi]                    ;取密钥word9
006671A6     83C6 02           add esi,2                                   ;指向密钥word10
006671A9     66:F7DA           neg dx
006671AC     66:8955 FC        mov word ptr Var_Word2,dx
006671B0     66:8B0E           mov cx,word ptr ds:[esi]                    ;取密钥word10
006671B3     83C6 02           add esi,2                                   ;指向word11
006671B6     51                push ecx
006671B7     8B45 08           mov eax,dword ptr ss:[ebp+8]
006671BA     50                push eax
006671BB     E8 10FEFFFF       call FTaxBase.00666FD0                     
006671C0     66:8903           mov word ptr ds:[ebx],ax
006671C3     83EB 02           sub ebx,2                                  ;
006671C6     66:8B55 FE        mov dx,word ptr Var_Word1
006671CA     83C4 08           add esp,8
006671CD     66:8913           mov word ptr ds:[ebx],dx
006671D0     83EB 02           sub ebx,2                                  ;
006671D3     66:8B4D FC        mov cx,word ptr Var_Word2
006671D7     66:890B           mov word ptr ds:[ebx],cx
006671DA     83EB 02           sub ebx,2                                  ;
006671DD     66:893B           mov word ptr ds:[ebx],di
006671E0     FF45 F8           inc dword ptr ss:[ebp-8]
006671E3     837D F8 08        cmp dword ptr ss:[ebp-8],8
006671E7   ^ 0F8C 79FFFFFF     jl FTaxBase.00667166
1 to 8 的循环

006671ED     66:8B3E           mov di,word ptr ds:[esi]
006671F0     83C6 02           add esi,2                       ;11
006671F3     83EB 02           sub ebx,2
006671F6     66:8B06           mov ax,word ptr ds:[esi]
006671F9     83C6 02           add esi,2                        ;12
006671FC     66:8903           mov word ptr ds:[ebx],ax
006671FF     83EB 02           sub ebx,2
00667202     66:893B           mov word ptr ds:[ebx],di
00667205     66:8B16           mov dx,word ptr ds:[esi]
00667208     83C6 02           add esi,2                       ;13
0066720B     52                push edx
0066720C     8B4D 08           mov ecx,dword ptr ss:[ebp+8]
0066720F     51                push ecx
00667210     E8 BBFDFFFF       call FTaxBase.00666FD0
00667215     8BF8              mov edi,eax
00667217     83C4 08           add esp,8
0066721A     66:8B06           mov ax,word ptr ds:[esi]
0066721D     83C6 02           add esi,2                        ;14
00667220     66:F7D8           neg ax
00667223     66:8945 FE        mov word ptr Var_Word1,ax
00667227     83EB 02           sub ebx,2
0066722A     66:8B16           mov dx,word ptr ds:[esi]
0066722D     83C6 02           add esi,2                         ;15
00667230     66:F7DA           neg dx
00667233     66:8955 FC        mov word ptr Var_Word2,dx
00667237     66:8B0E           mov cx,word ptr ds:[esi]
0066723A     83C6 02           add esi,2                         ;16
0066723D     51                push ecx
0066723E     8B45 08           mov eax,dword ptr ss:[ebp+8]
00667241     50                push eax
00667242     E8 89FDFFFF       call FTaxBase.00666FD0
00667247     66:8903           mov word ptr ds:[ebx],ax
0066724A     83EB 02           sub ebx,2
0066724D     66:8B55 FC        mov dx,word ptr Var_Word2
00667251     83C4 08           add esp,8
00667254     66:8913           mov word ptr ds:[ebx],dx
00667257     83EB 02           sub ebx,2
0066725A     66:8B4D FE        mov cx,word ptr Var_Word1
0066725E     66:890B           mov word ptr ds:[ebx],cx
00667261     83EB 02           sub ebx,2
00667264     66:893B           mov word ptr ds:[ebx],di
00667267     5F                pop edi
00667268     5E                pop esi
00667269     5B                pop ebx
0066726A     59                pop ecx
0066726B     59                pop ecx
0066726C     5D                pop ebp
0066726D     C3                retn

call FTaxBase.00666FD0
00666FD0     55                push ebp
00666FD1     8BEC              mov ebp,esp
00666FD3     51                push ecx
00666FD4     53                push ebx
00666FD5     56                push esi
00666FD6     57                push edi
00666FD7     8B4D 0C           mov ecx,dword ptr ss:[ebp+C]  ;第二个参数
00666FDA     66:83F9 01        cmp cx,1
00666FDE     77 07             ja short FTaxBase.00666FE7   if keyword<=1
00666FE0     8BC1              mov eax,ecx                     否则直接返回
00666FE2     E9 91000000       jmp FTaxBase.00667078           exit
                                                            else
00666FE7     0FB7D9            movzx ebx,cx                   ;keyword
00666FEA     B8 01000100       mov eax,10001                  ;$10001
00666FEF     99                cdq
00666FF0     F7FB              idiv ebx            
00666FF2     8BF0              mov esi,eax                    ;esi =10001/keyword 整数
00666FF4     B8 01000100       mov eax,10001
00666FF9     99                cdq
00666FFA     F7FB              idiv ebx      
00666FFC     8BDA              mov ebx,edx                    ;ebx=10001/keyword 余数
00666FFE     66:83FB 01        cmp bx,1
00667002     75 09             jnz short FTaxBase.0066700D     if 余数=1
00667004     66:B8 0100        mov ax,1                           ax:=1
00667008     66:2BC6           sub ax,si                          ax:=ax-si (整数)
0066700B     EB 6B             jmp short FTaxBase.00667078        exit
                                                                else
0066700D     66:C745 FE 0100   mov word ptr Var_Word1,1           变量=1

00667013     0FB7C1            movzx eax,cx          ; keyword                  
00667016     0FB7D3            movzx edx,bx          ; 余数
00667019     8BFA              mov edi,edx           ;余数?
0066701B     99                cdq
0066701C     F7FF              idiv edi
0066701E     8BF8              mov edi,eax           edi:=keyword/edx
00667020     0FB7C1            movzx eax,cx          ;keyword
00667023     0FB7D3            movzx edx,bx          ;余数
00667026     8BCA              mov ecx,edx           ecx=余数
00667028     99                cdq
00667029     F7F9              idiv ecx   
0066702B     8BCA              mov ecx,edx    ecx=keyword/余数
0066702D     0FB7C7            movzx eax,di   余数
00667030     0FB7D6            movzx edx,si   整数
00667033     F7EA              imul edx
00667035     66:0145 FE        add word ptr Var_Word1,ax
00667039     66:83F9 01        cmp cx,1
0066703D     75 06             jnz short FTaxBase.00667045
0066703F     66:8B45 FE        mov ax,word ptr Var_Word1
00667043     EB 33             jmp short FTaxBase.00667078   exit
00667045     0FB7C3            movzx eax,bx
00667048     0FB7D1            movzx edx,cx
0066704B     8BFA              mov edi,edx
0066704D     99                cdq
0066704E     F7FF              idiv edi
00667050     8BF8              mov edi,eax
00667052     0FB7C3            movzx eax,bx
00667055     0FB7D1            movzx edx,cx
00667058     8BDA              mov ebx,edx
0066705A     99                cdq
0066705B     F7FB              idiv ebx
0066705D     8BDA              mov ebx,edx
0066705F     0FB7C7            movzx eax,di
00667062     0FB755 FE         movzx edx,word ptr Var_Word1
00667066     F7EA              imul edx
00667068     66:03F0           add si,ax
0066706B     66:83FB 01        cmp bx,1
0066706F   ^ 75 A2             jnz short FTaxBase.00667013

00667071     66:B8 0100        mov ax,1
00667075     66:2BC6           sub ax,si

00667078     5F                pop edi
00667079     5E                pop esi
0066707A     5B                pop ebx
0066707B     59                pop ecx
0066707C     5D                pop ebp
0066707D     C3                retn

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
2
读懂你的注释比读懂程序还难:D
RSA加密只有三个参数,一个是公钥e常用的值有10001(h)65537(d),另一个是模数p,这是一个大素数!还有一个就是要加密的信息了。解密的时候也只有三个参数,私钥d和模数p以及要解密的信息。在你的程序中找找看。
2005-1-29 15:16
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
大部分的RSA加密都会用有一个:KEY大数转换->RSA_encrypt的过程。找找看吧!
2005-1-29 16:44
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
4
最初由 cnbragon 发布
读懂你的注释比读懂程序还难:D
RSA加密只有三个参数,一个是公钥e常用的值有10001或者65537,另一个是模数p,这是一个大素数!还有一个就是要加密的信息了。解密的时候也只有三个参数,私钥d和模数p以及要解密的信息。在你的程序中找找看。


不好意思,新手,写给自己看的。
00666FE7     0FB7D9            movzx ebx,cx                   ;keyword
00666FEA     B8 01000100       mov eax,10001                  ;$10001

中的10001就是65537 所以我认为是rsa

而且我发现结合了md5
2005-1-29 19:04
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
5
if it is RSA, u must find N
2005-1-29 19:41
0
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
6
好像idea中也用到10001
2005-1-29 20:41
0
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
7
再看了一下,
我目前认为有90%以上是idea
2005-1-29 20:45
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
8
楼主用PEiD 的插件看看
2005-1-29 20:54
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
9
老大们,不是exe文件,怎么看?

好像是borland C++ Bulider 的bpl文件,peidv0.92中插件kanal v2.8查出有MD5
2005-1-29 21:28
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
从其8个循环以及0x10001 % 参数 来看的确是IDEA,贴出的代码为: IdeaSetDecryptKey
2005-1-29 21:42
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
11
最初由 采臣・宁 发布
从其8个循环以及0x10001 % 参数 来看的确是IDEA,贴出的代码为: IdeaSetDecryptKey


强!!!!能给更多点的帮助吗?

没权限上传图片 ,ollydbg 里能看到 call SetDecryptKey

0066E02E     66:C743 10 0800   mov word ptr ds:[ebx+10],8
0066E034     8B4D F8           mov ecx,dword ptr ss:[ebp-8]
0066E037     51                push ecx
0066E038     8B45 0C           mov eax,dword ptr ss:[ebp+C]
0066E03B     50                push eax
0066E03C     E8 C7F6FFFF       call FTaxBase.TSystemArgument::SetDeCryptoKey
0066E041     66:C743 10 5000   mov word ptr ds:[ebx+10],50                      ; 十进制80
0066E047     83C4 08           add esp,8
0066E04A     33D2              xor edx,edx
0066E04C     8955 D0           mov dword ptr ss:[ebp-30],edx                    
0066E04F     8D4D D0           lea ecx,dword ptr ss:[ebp-30]                    
0066E052     51                push ecx
0066E053     33C0              xor eax,eax
0066E055     FF43 1C           inc dword ptr ds:[ebx+1C]
0066E058     8945 D4           mov dword ptr ss:[ebp-2C],eax
0066E05B     8BC6              mov eax,esi
0066E05D     8D55 D4           lea edx,dword ptr ss:[ebp-2C]
0066E060     FF43 1C           inc dword ptr ds:[ebx+1C]
0066E063     8B08              mov ecx,dword ptr ds:[eax]
0066E065     FF51 60           call dword ptr ds:[ecx+60]
0066E068     8D55 D4           lea edx,dword ptr ss:[ebp-2C]                    ; 待解密字符串
0066E06B     8D45 FC           lea eax,dword ptr ss:[ebp-4]                    
0066E06E     52                push edx
0066E06F     6A 01             push 1
0066E071     50                push eax
0066E072     E8 05AE0000       call FTaxBase.00678E7C
0066E077     83C4 08           add esp,8
0066E07A     8D45 FC           lea eax,dword ptr ss:[ebp-4]
0066E07D     E8 0EB30000       call FTaxBase.00679390
0066E082     8B55 FC           mov edx,dword ptr ss:[ebp-4]                    
0066E085     0FBE0A            movsx ecx,byte ptr ds:[edx]
0066E088     C1E1 03           shl ecx,3
0066E08B     BA 01000000       mov edx,1
0066E090     58                pop eax                                          ; 待解密字符串
0066E091     E8 66B40000       call FTaxBase.006794FC                           ; 重要
0066E096     8D4D D0           lea ecx,dword ptr ss:[ebp-30]                    ; 待解密字符串?
0066E099     8B01              mov eax,dword ptr ds:[ecx]                       ; 地址
0066E09B     33C9              xor ecx,ecx
0066E09D     50                push eax
0066E09E     8D45 CC           lea eax,dword ptr ss:[ebp-34]
0066E0A1     8B55 0C           mov edx,dword ptr ss:[ebp+C]
0066E0A4     52                push edx
0066E0A5     894D CC           mov dword ptr ss:[ebp-34],ecx                    ; 0
0066E0A8     50                push eax
0066E0A9     FF43 1C           inc dword ptr ds:[ebx+1C]
0066E0AC     E8 57F7FFFF       call FTaxBase.TSystemArgument::DeCrypto          ; 解密
0066E0B1     83C4 0C           add esp,0C
0066E0B4     8D45 CC           lea eax,dword ptr ss:[ebp-34]                    ; 解密完成
0066E0B7     33D2              xor edx,edx

2005-1-29 21:44
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
建议找本IDEA算法的书看看,一清二白!
提示:IDEA是分组密码算法,其分组长度64位,密钥长度为128位,其加解密为同一算法。
2005-1-29 21:55
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
把程序传上来大家会更明白点。另,上传图片应该是可以的。
2005-1-29 21:56
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
14
最初由 采臣・宁 发布
把程序传上来大家会更明白点。另,上传图片应该是可以的。


1、由于你权限不够,不能使用附件功能。先在看雪技术论坛混段时间,
自然会有上传附件的权限。(2005年1月25日对新注册用户实行权限限制,请谅解!)

2、商业软件,以上代码再一个 pbl文件中。

估计是idea+md5了!!谢谢各位的热情。
2005-1-29 22:00
0
游客
登录 | 注册 方可回帖
返回
//