KeyGen of KeyGenMeRSA, 無法用完全的C插入了一點asm, 憾甚 (5千字)
#include "lip.h"
#include <string.h>
void main()
{
int i=0,j=0,f=0;
verylong n=0;
verylong d=0;
verylong m=0;
unsigned long M[5],M2[5];
unsigned long temp;
char modulus_n[]="D2E9BF9B3D258E479D8CC23C7A33E1F8EBB3ADB1";
char private_d[]="C6546E0C11ACCE2543DD1150C4CE7A05A4C8FA3D";
char UserName[40];
char Company[40];
int LenOfName=0,LenOfCompany=0;
for(i=0;i<5;i++)
{
M[i]=0;
M2[i]=0;
}
i=0;
j=0;
printf("\n ******* KeyGen of TMG KeyGenMeRSA (KeyGenMe#2)
******* ");
printf("\n ***************** used freelip v1.1 ******************
");
printf("\n *************** by lancelot [CCG] [FCG] **************
");
do
{
printf("\n\n Please enter the username:
");
gets(UserName);
LenOfName=strlen(UserName);
if(LenOfName<5)
printf("\n The username
can't be less than 5 characters, please try again\n");
}
while(LenOfName<5);
do
{
printf("\n Please enter the company: ");
gets(Company);
LenOfCompany=strlen(Company);
if(LenOfCompany<5)
printf("\n The company
can't be less than 5 characters, please try again\n");
}
while(LenOfCompany<5);
/* *****************************************UserName****************************
*/
M[j]=0xffffffff;
M[j]&=0xffffff00;
M[j]+=UserName[i];
M[j]^=(UserName[i]*0x100);
M[j]*=0x89177313;
M[j]&=0x55aa55aa;
M[j]*=0x12299381;
M[j]^=0xaa55aa11;
M[j]*=0x00000061;
M[j]^=((M[j]&0x000000ff)*0x100);
M[j]|=0x10030118;
M[j]*=0x00988279;
/* rcl (LenOfName-i) */
_asm
{
lahf
mov f,eax
}
f=f&0x100;
if(f)
M[j]=(((M[j]<<(LenOfName-i))|((M[j]&(0xffffffff<<(32-(LenOfName-i))))>>(33-(LenOfName-i))))|(0x00000001<<(LenOfName-1-i)));
else
M[j]=((M[j]<<(LenOfName-i))|((M[j]&(0xffffffff<<(32-(LenOfName-i))))>>(33-(LenOfName-i))));
temp=M[j];
M2[j]^=M[j];
for(i=1;i<LenOfName;i++)
{
j=(((0+(i-1)*4)&0xf)/4)+1;
M[j]=temp;
M[j]&=0xffffff00;
M[j]+=UserName[i];
M[j]^=(UserName[i]*0x100);
M[j]*=0x89177313;
M[j]&=0x55aa55aa;
M[j]*=0x12299381;
M[j]^=0xaa55aa11;
M[j]*=0x00000061;
M[j]^=((M[j]&0x000000ff)*0x100);
M[j]|=0x10030118;
M[j]*=0x00988279;
/* rcl (LenOfName-i) */
_asm
{
lahf
mov f,eax
}
f=f&0x100;
if(f)
M[j]=(((M[j]<<(LenOfName-i))|((M[j]&(0xffffffff<<(32-(LenOfName-i))))>>(33-(LenOfName-i))))|(0x00000001<<(LenOfName-1-i)));
else
M[j]=((M[j]<<(LenOfName-i))|((M[j]&(0xffffffff<<(32-(LenOfName-i))))>>(33-(LenOfName-i))));
temp=M[j];
M2[j]^=M[j];
}
/* ***************************************Company******************************
*/
i=0;
M[0]=temp;
for(i=1;i<5;i++) { M[i]=0; }
i=0;
j=0;
M[j]&=0xffffff00;
M[j]+=Company[i];
M[j]=(M[j]&0xffff00ff)|(((M[j]&0x0000ff00)-(Company[i]*0x100))&0x0000ff00);
M[j]*=0x89157313;
M[j]&=0x55aa55aa;
M[j]*=0x12299387;
M[j]|=0xaa55aa11;
M[j]*=0x00000061;
M[j]^=0x10010114;
M[j]*=0x07918279;
M[j]^=((M[j]&0x000000ff)*0x100);
/* rcr (LenOfCompany-i) */
_asm
{
lahf
mov f,eax
}
f=f&0x100;
if(f)
M[j]=(((M[j]>>(LenOfCompany-i))|((M[j]&(0xffffffff>>(32-(LenOfCompany-i))))<<(33-(LenOfCompany-i))))|(0x80000000>>(LenOfCompany-1-i)));
else
M[j]=((M[j]>>(LenOfCompany-i))|((M[j]&(0xffffffff>>(32-(LenOfCompany-i))))<<(33-(LenOfCompany-i))));
temp=M[j];
M2[j]^=M[j];
for(i=1;i<LenOfCompany;i++)
{
j=(((0+(i-1)*4)&0xf)/4)+1;
M[j]=temp;
M[j]&=0xffffff00;
M[j]+=Company[i];
M[j]=(M[j]&0xffff00ff)|(((M[j]&0x0000ff00)-(Company[i]*0x100))&0x0000ff00);
M[j]*=0x89157313;
M[j]&=0x55aa55aa;
M[j]*=0x12299387;
M[j]|=0xaa55aa11;
M[j]*=0x00000061;
M[j]^=0x10010114;
M[j]*=0x07918279;
M[j]^=((M[j]&0x000000ff)*0x100);
/* rcr
(LenOfCompany-i) */
_asm
{
lahf
mov f,eax
}
f=f&0x100;
if(f)
M[j]=(((M[j]>>(LenOfCompany-i))|((M[j]&(0xffffffff>>(32-(LenOfCompany-i))))<<(33-(LenOfCompany-i))))|(0x80000000>>(LenOfCompany-1-i)));
else
/* M[j]=((M[j]>>(LenOfCompany-i))|((M[j]&(0xffffffff>>(32-(LenOfCompany-i))))<<(33-(LenOfCompany-i))));
*/
{
temp=M[j]&(0xffffffff>>(32-(LenOfCompany-i)));
if(i==(LenOfCompany-1))
temp=0;
else
temp=temp<<(33-(LenOfCompany-i));
M[j]=((M[j]>>(LenOfCompany-i))|temp);
}
temp=M[j];
M2[j]^=M[j];
}
temp-=M2[2];
temp*=0x34814815;
M2[4]+=temp;
temp=(temp>>0x0000000b);
temp&=0x00000003;
M2[0]&=0xffffff00;
M2[0]+=temp;
for(i=0;i<5;i++)
{
temp=0;
temp|=((M2[i]&0x000000ff)<<24);
temp|=((M2[i]&0x0000ff00)<<8);
temp|=((M2[i]&0x00ff0000)>>8);
temp|=((M2[i]&0xff000000)>>24);
M[4-i]=temp;
}
zultoz(M, (long) 5,&m);
zstrtozbas(modulus_n, (long) 16, &n);
zstrtozbas(private_d, (long) 16, &d);
zexpmod(m,d,n,&m); /* m = m^d % n */
printf("\n your registration code is: "); /* out put the
result */
zhwrite(m);
printf("\n\n Please remove the space between the registration
code manually.");
printf("\n\n Press any key to continue...");
getchar();
zfree(&d); /* Clean up */
zfree(&m);
zfree(&n);
}
======================================================================================
慚愧,這個KeyGen編譯後,比那個KeyGenMe大了20幾倍。
感謝看雪論壇上眾多前輩的熱情幫助,特別感謝 arbiter 、偽裝者[CCG], 我感覺我好像快要摸到
crack的大門了,呵呵。
========================================================
,;~;,
/\_
( /
(() //)
| \\ ,,;;'\
__ _( )m=(lancelot(================--------
/' ' '()/~' '.(, |
,;( )|| | ~
,;' \ /-(.;, )
蘭斯洛特[CCG][FCG]
) / ) /
// ||
2001.10.11
)_\ )_\
==========================================================
相關文章
- EbookMaker 1.21 inc c++ source keygen
(4千字)2002-04-18C++
- BootStar v7.33 keygen in pure win32asm. (6千字)2002-02-08bootWin32ASM
- 金山毒霸試用版完全破解 (5千字)2001-07-16
- ASM無法啟動的問題分析(一)2016-12-19ASM
- RAC節點啟動失敗--ASM無法連線2021-09-09ASM
- 【ASM】RAC19C因引數設定不當,asm無法啟動2021-07-20ASM
- My Flash player 1.3 完全破解 (5千字)2001-12-05
- [BUG反饋]HI,onethink無法登入了,只能去thinkphp.com登入了再回來2019-05-11PHP
- oracle rac 無法建立asm磁碟2009-05-12OracleASM
- 【ASM】ASM啟動無法找到spfile問題原因2021-09-29ASM
- 比較早的一個keygen練習, 參考hambo教程。 (1千字)2001-10-19
- SEH in ASM 研究(一) (7千字)2001-12-29ASM
- ASM無法啟動的問題分析(二)2016-12-19ASM
- nyc 插樁無法插樁使用裝飾器的程式碼,請問有什麼解決辦法嗎?2020-11-05
- ASM Failure Group的一點理解2017-01-24ASMAI
- Api32 keygen: learn how to use RSA
(4千字)2015-11-15API
- 有誰能名將它完全破解了 (5千字)2000-08-26
- 解決ASM無法啟動問題2019-07-20ASM
- RAC DG 物理standby ASM無法啟動2013-12-06ASM
- Java解釋單連結串列中的頭插法以及尾插法2020-11-21Java
- 最新研究,GPT-4暴露了缺點!無法完全理解語言歧義!2023-05-08GPT
- 頭插法和尾插法建立連結串列區別2016-02-27
- 解決ASM磁碟組無法掛載的問題2011-06-05ASM
- Oracle 19C 無法啟用Auto Indexes特性2020-02-05OracleIndex
- 我想靠遊戲陪玩賺點錢,結果陷入了一場無處不騙的電子傳銷2020-03-03遊戲
- Oracle 19c rac安裝,只能啟動一個節點的ASM2021-03-02OracleASM
- Vue 模板語法第一式 —— 插值2019-06-05Vue
- webgl centroid質心插值的一點理解2023-10-04Web
- 實現一個無法被繼承的C++類2017-05-30繼承C++
- 發一篇C#.NET的破解文章,請各位指點指點:)
(12千字)2015-11-15C#
- winimage完全破解 (8千字)2001-07-04
- 一站看完全網熱文,目前最實用的熱點工具!2022-01-04
- ASM無法自動載入磁碟組問題解決一例2010-09-10ASM
- 結構化拖延法 ——《拖拉一點也無妨》2016-03-12
- 可代替 ASM,使用 AnnotationProcessor 做程式碼插樁2019-02-15ASM
- ASM無法自動載入磁碟組問題2012-07-09ASM
- 脫殼----對用Petite2.2加殼的程式進行手動脫殼的一點分析
(5千字)2000-07-27
- Google 的應用商店悄悄進入了中國2014-12-10Go