Discussion Naruto Mobile (NASAGA CN - NINDO ENDLESS)

skillerm

Platinian
Hello friends!

I recently started working with private servers again. I have a certain passion for Naruto and Dragon Ball games.
I recently found the game NASAGA CN, the offline server (source) was made available by a person named loulx games (you can search for them).

Well, I downloaded it to have fun, it's really good, but it's in Chinese and Thai, I'm Brazilian, and that makes the whole situation worse.
Anyway, I went looking for the APK in the English version, and I found the same game with another name, NINDO ENDLESS.

1761428534578.png
1761428548615.png


Look, it's really cool, and imagine playing as the owner of the game, and playing with your friends? That has always been my idea.

But let's get to it, I edited many game files, not the server but the website and some things from its sources.
I found the English APK of this game, initially, it was enough to just edit the version.split file that is inside it, right? Wrong, whoever got it made those files useless, or at least that's how I see them so far.
The person in question edited it so that the link was taken directly from libcocos, in the game engine.

1761428881685.png

I edited this line in both of their engine files, pointing to my local server. (IDA PRO)
And success! The APK connected, but there's another problem: after downloading the resources, it doesn't open, it stays on a black screen. And when I reopen it, it downloads everything again, meaning there's something else going on. It could be that the version is no longer in version.split, but also within the game engine itself.
Well, I'm investigating.

If anyone knows about this game in English, has the APK, everything working perfectly offline for me to play, and can send the link here, I would appreciate it. I like this adventure but it's very tiring.
I will continue to investigate, and if I succeed, I will make it available here.

If you have other APKs of this same game in English, please send them to me so I can test them, maybe I'll be lucky enough to find one that works.

I have the download link for the APKs from the server.
But I don't know if I can post it here on the forum. If anyone is interested or can help with anything, I would appreciate it.
If you have another server for Naruto or another game, you can also send it to me, I love them.
(BLACK SCREEN AFTER UPDATE)

1761428984022.png
 
Solution
We did it!
We have the open source server
and open source .lua files.

We can do a lot with this! I'm going to translate the game into English and start fixing the bugs.
1762467559589.png

1762467444140.png
Continuing.

I've made several attempts to decrypt this game, all without success. The reason?

This:
Copyright (c) 2014 YouMi Information Technology Inc.
Copyright (c) 2016 TianJi Information Technology Inc.

The signature doesn't match the beginning of the files at all; they all start with tj!, tje, tjer. It seems like two encryptions were used for this.

I found a source that contains code from these two companies. It does have an xxtea with a signature and key, but it doesn't decrypt the files, meaning it's not decrypted. There's something else besides the xxtea.

And the function imposed in the libcocos of this original source, not the source, has 6 parameters, unlike the standard one which has 5.

I'm honestly exhausted; I've been at this for 5 days straight.

I've already tried Frida but it's blocked, I've tried using the source opcode but it won't work if I don't send correct information and not standard opcodes.

The decoding seems to occur at the beginning of the game loading.

I tried modifying the library with keypatch but all the modifications crash the game as soon as it loads, for example, either the field I modify is inaccessible, or the function of this new field cannot be called because it is too far away.

Any help will be welcome, I'm trying very hard, and congratulations to these two companies, they've made this Encryption a real nightmare.
 
Hello friends!

Today's update -> I managed to dump some files and modify the main login screen.

This engine transforms the image into a sprite, to then display it to the game. A good thing? It doesn't need to be encrypted to run.

However, the asset paths aren't the real ones (I don't know if this happens with all libcocos, I've been away for a long time). There's a file that maps the files in the assets and creates fake paths, but if it needs to access a file and it doesn't exist in the fake path in this mapping, it looks for the real directory.

I'm making good progress, I hope I don't get stuck.

This is my result so far, in case you're thinking of doing:
Frida didn't work - I gave up.
Editing the lib with keypatch/keystone to modify data or create new functions and calls didn't work - I gave up.
Capturing client information from the server, what's the logic? Well, I don't know why I did that - I gave up.

I've had that damn login music stck in my head 24 hours a day.

1761881153838.png



dump_qq_bg_1.png
dump_loginspine.png
 
Quick update:
I bought a phone just to debug via IDA Pro, since Android emulators aren't good for that.

And a curious update: in the game there's a drawcard where you can get regular ninjas, S-tier ninjas, SS-tier ninjas, and it shows a probability.

I ran it 300 times and didn't get any SS-tier ninjas. After investigating, I found the code, and it's literally impossible to get an SS-tier ninja because they didn't put it in the code. You can get an S-tier ninja, between 1 and 3 S-tier ninjas at most, but no SS-tier ninjas.
1762011917884.png
 
Hello friends!

Today's update -> I managed to dump some files and modify the main login screen.

This engine transforms the image into a sprite, to then display it to the game. A good thing? It doesn't need to be encrypted to run.

However, the asset paths aren't the real ones (I don't know if this happens with all libcocos, I've been away for a long time). There's a file that maps the files in the assets and creates fake paths, but if it needs to access a file and it doesn't exist in the fake path in this mapping, it looks for the real directory.

I'm making good progress, I hope I don't get stuck.

This is my result so far, in case you're thinking of doing:
Frida didn't work - I gave up.
Editing the lib with keypatch/keystone to modify data or create new functions and calls didn't work - I gave up.
Capturing client information from the server, what's the logic? Well, I don't know why I did that - I gave up.

I've had that damn login music stck in my head 24 hours a day.

View attachment 839277


View attachment 839274View attachment 839275
Go good luck g
 
I bought the phone but haven’t received it yet, so I still can’t finish the client’s request.

What I discovered:
The server doesn’t use .csv files directly. It works through a pipeline:
.csv → csv2src → config_csv.py → config_csv.pyc → Python server


This means all game data — items, probabilities, events, shop, fights, ninjas, etc. — gets converted before being used.
When I edited the DrawCard ninja settings, I found them in the CSVs, but the game reads the compiled config instead.
The person who shared this server deleted language_config.py, so I decompiled it. It worked, but some Chinese text became “????” (will fix later).
Inside the anti_cheat folder, there are many .csv files that can be rebuilt using csv2 included in the source — but everything is in Chinese and the English files are missing (likely deleted).

Important discovery:
There is NO way to get a Tier SS Ninja in the DrawCard — not even by luck. The code simply does not include SS in the draw logic. People spent money thinking they could get one… and they can’t.

How the DrawCard works:
  • The draw is defined by drawtype (ninjas, chips, items, etc.)
  • For ninjas: rmb1 (single) and rmb10 (10x)
  • Single draws basically can’t give SS
  • 10x draws are the real intended mechanic
  • There’s also a counter that gives a guaranteed S after a number of rolls
Next, I’ll show the ninja tier list in the “good box.”

1762043608261.png




The pool ID defines which boxes will be called.
For example, imagine 1 chest, inside this chest there are 3 more chests, and inside these 3 chests there are your ninjas, B/C, A and S.

Every time you open 10 boxes, these 3 pools 201, 205 and 206 appear.
And believe me, none of these calls a box that contains SS ninjas.
1762043854633.png



I suppose that 207 would be suitable for SS-level ninjas, but there is no code for SS-level ninjas, only S-level ninjas.
SS-level ninjas start with the number 3.
1762043938062.png


I adjusted the code to get SS-level ninjas.
Don't worry, everything I've discovered and learned is being documented, it will go through OpenAI and then I will provide links for study and assistance.

1762047475318.png

1762047491032.png



Extra:
I fixed the avatar issue; previously you couldn't change it, but now it's possible.
1762047566910.png

1762047617983.png


(RMB is the name of the in-game currency.)
 
Hello friends, after working for days and days I almost gave up. I found a discussion about the decoding process, and I went through the entire libcocos library of this game again, but unfortunately, it didn't work either.

Only two paths remain: either someone with a kind heart helps me, or I somehow manage to extract the list of all files from the repo.mapping. Once I get that list, I can extract all the decoded files from the game.

I won't come back here until I succeed. If a long time passes and I haven't returned, it's because I haven't succeeded.

1762399140528.png
 
I bought the phone but haven’t received it yet, so I still can’t finish the client’s request.

What I discovered:
The server doesn’t use .csv files directly. It works through a pipeline:
.csv → csv2src → config_csv.py → config_csv.pyc → Python server


This means all game data — items, probabilities, events, shop, fights, ninjas, etc. — gets converted before being used.
When I edited the DrawCard ninja settings, I found them in the CSVs, but the game reads the compiled config instead.
The person who shared this server deleted language_config.py, so I decompiled it. It worked, but some Chinese text became “????” (will fix later).
Inside the anti_cheat folder, there are many .csv files that can be rebuilt using csv2 included in the source — but everything is in Chinese and the English files are missing (likely deleted).

Important discovery:
There is NO way to get a Tier SS Ninja in the DrawCard — not even by luck. The code simply does not include SS in the draw logic. People spent money thinking they could get one… and they can’t.

How the DrawCard works:
  • The draw is defined by drawtype (ninjas, chips, items, etc.)
  • For ninjas: rmb1 (single) and rmb10 (10x)
  • Single draws basically can’t give SS
  • 10x draws are the real intended mechanic
  • There’s also a counter that gives a guaranteed S after a number of rolls
Next, I’ll show the ninja tier list in the “good box.”

View attachment 840918



The pool ID defines which boxes will be called.
For example, imagine 1 chest, inside this chest there are 3 more chests, and inside these 3 chests there are your ninjas, B/C, A and S.

Every time you open 10 boxes, these 3 pools 201, 205 and 206 appear.
And believe me, none of these calls a box that contains SS ninjas.
View attachment 840919


I suppose that 207 would be suitable for SS-level ninjas, but there is no code for SS-level ninjas, only S-level ninjas.
SS-level ninjas start with the number 3.
View attachment 840920

I adjusted the code to get SS-level ninjas.
Don't worry, everything I've discovered and learned is being documented, it will go through OpenAI and then I will provide links for study and assistance.

View attachment 840933
View attachment 840934


Extra:
I fixed the avatar issue; previously you couldn't change it, but now it's possible.
View attachment 840935
View attachment 840936

(RMB is the name of the in-game currency.)
Good
 
Back
Top Bottom