Commit Graph

62 Commits

Author SHA1 Message Date
beerpsi 0bb60c35a6 Add JapScan (again) (#510)
* Add JapScan (again)

* remove unusued dep

* fix search thumbnails
2024-01-30 22:07:01 +00:00
KirinRaikage f0c7a740ba
Remove Japscan due to cat and mouse game (#17892)
* Remove Japscan due to cat and mouse game

* [skip ci] Add to REMOVED_SOURCED.md
2023-09-10 18:05:12 -03:00
arkon 2a7801e876
Move package namespace declarations out of manifests (#17581) 2023-08-18 08:58:52 -04:00
beerpsi 37a4b20ef2
JapScan: Use lib-synchrony to deobfuscate code (#17329) 2023-07-31 14:37:56 -03:00
zormy111 a3543bf2b2
update of the japscan extension - the complete reverse of the JS (#17181)
* Update Japscan.kt

I completely changed the way to find the keys allowing the decryption of the base64 which contains the information of the images to be recovered. Before there was a recovery by regex, but this was not reliable because the location of these strings changes places and the order is important because it allows to reconstitute the two decryption keys. To succeed in recovering them correctly and in the right order, I debugged the javascript, which allowed me to understand how obfuscation works.

 I understood that the base64 encryption file, the zjs, was not the same file when we had a mobile useragent and a PC useragent, it is however the same key, just that they are placed at different other place
at the end of the file we have the JS which assembles the keys directly as parameters of a function:

a0_0x39cacb('0x13d') + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N', a0_0x39cacb('0x145') + a0_0x39cacb('0x116') + a0_0x39cacb('0x10f') + 'oe'


we have another function here:

return a0_0x46c1 = function(_0x46c1ab, _0x5a3fac) {
        _0x46c1ab = _0x46c1ab - 0x105;
        let _0x5c76b5 = _0xd80153[_0x46c1ab];
        return _0x5c76b5;
    }


which call string array which contains the key chunks

0 : "laretiLesrap"
1 : "gnp.600/sgmi/"
2 : "atad"
3 : "daol"
4 : "8ceABpX"
..


_0x46c1ab = _0x46c1ab - 0x105;


this operation allows to know the shift in the table, for example
By subtracting 0x105 from '0x13d', we get:

317 - 261 = 56

at location 56, so at index 55 of the array we have: "ohcVEMDTYO7FpBA20zRg"

so here: a0_0x39cacb('0x13d') + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N'
we replace a0_0x39cacb('0x13d')

by this chain

"ohcVEMDTYO7FpBA20zRg" + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N'

and that gives us the beginning of the key
and then reverse it
and that gives us the right key

* Update build.gradle

Update build version

* Update Japscan.kt - Completely reverse JavaScript

My modification was missing part of the javascript code to reverse, this modification brings greater stability.
In the JS is decrypts the data, there is a table of character string, this table is the most important element of the decryption because it is used in almost all the functions.

What the algorithm does in a nutshell:

- he shuffles the board until he arrives at a precise position, he pushes all the elements backwards until he finds the right combination. The correct combination is determined by the sum of the digits in the character strings with a more or less complex calculation.

- It calls the table in a "hidden" way with a function that takes a hexadecimal as a parameter (which corresponds to the index in the table)

- once all the keys have been retrieved from the character string table, it assembles them, then reverses them to give the complete key


How I proceeded:

- For the correct position in the table I perform almost the same calculation as the JS but I simplify, this to a tiny margin of error. In the calculation in the JS it parses the INTs in the chain and makes calculations with it, to simplify my task I only check if ALL the elements used contain INTs, I did several debug tests and they are obliged to contain them when the position is good. So starting from this principle I would almost certainly fall on the right position.

- Once my array is correctly sorted, I can with a simple calculation managed to recover the requested element with the hexadecimal

- I reverse the keys and I test the two positions of the keys to decipher the base64

* Update Japscan.kt

Added the possibility to have the parseInt in negative

* Update Japscan.kt

Modification needed to take into account the wider possibility of script changes

* Update Japscan.kt - Add comments

Ajout des commentaires
2023-07-21 18:57:53 -04:00
Rajh a70b186815
Update Japscan (#16908)
* Update Japscan.kt

Japscan splitted tables, fast fix for it
Closes #16898

* Remove Log.d messages

---------

Co-authored-by: Rajh <Rajh>
2023-07-01 10:07:17 -04:00
Rajh 80ae017310
Update Japscan.kt (#15979)
Fix Referer
Closes #15749
2023-04-07 10:22:11 -04:00
Mylloon 8cf3472578
Update Japscan domain name (#15397)
Update domain name
2023-02-18 17:45:44 -03:00
arkon e1f59a845e
Update jsoup (#15321) 2023-02-11 22:22:32 -05:00
arkon 7964dc4613
Upgrade OkHttp (#15320) 2023-02-11 17:30:31 -05:00
arkon baaee5cf21
Update linter (#15317) 2023-02-11 14:21:03 -05:00
nzoba 36a6bcdd0c
Japscan: Fix date (#15171) 2023-01-29 15:39:29 -03:00
beerpsi 2cd0dcd55f
[JapScan] Fix selectors, make ZJS more resistant (#15025)
* [JapScan] Fix selectors, make ZJS more resistant

Co-authored-by: Vetle Ledaal <13540478+vetleledaal@users.noreply.github.com>

* bump version

Co-authored-by: Vetle Ledaal <13540478+vetleledaal@users.noreply.github.com>
2023-01-19 11:26:28 -03:00
beerpsi b87aa79091
[Japscan] Rate limit (#15008)
* [Japscan] Rate limit

* idk

* handle cloudflare shenanigans leading to not finding zjs strings

* translate exceptions

* add number of lookup strings found
2023-01-18 17:16:24 -05:00
beerpsi 339f6c9f68
JapScan: yeet WebView (#14881)
* JapScan: Yeet WebView

* chore: remove unused regex
2023-01-10 20:33:26 -03:00
BRAMILLE Sébastien e12605507a
Fix japscan pagecount loading (fallback added) (#14122) 2022-11-04 07:00:33 -04:00
BRAMILLE Sébastien 2d56d12797
Fix japscan (dynamic page loading) (#14109)
* Fix japscan

* Update extVersionCode
2022-11-03 06:20:38 -04:00
BRAMILLE Sébastien 9884a8a060
Fix japscan download (#12827) 2022-07-31 17:58:51 -04:00
king07-0 996513d0e3
Japscan fix resources URL (#12714)
* Update build.gradle

update graddle version

* Update Japscan.kt

update ressources URL prefix
2022-07-24 19:00:15 -04:00
Arnaud Hennig 07976dcc02
Fix japscan urls (#12609) 2022-07-17 10:20:39 -04:00
arkon 86d04b11b7
[skip ci] Address some compiler deprecation warnings (#12086) 2022-06-05 16:07:57 -04:00
arkon 542c28875d Minor project updates
- Update kotlinter
- Opt in to serialization API to avoid IDE warnings
- Replace some deprecated OkHttp function usages
- Remove some unnecessary Android version checks/targets
2022-01-02 18:47:56 -05:00
arkon bc7d8c8672
Default libVersion to 1.2 (#9014) 2021-09-09 08:58:17 -04:00
Alessandro Jean 3f91c5f75e
Replace JsonParser with kotlinx.serialization in some extensions (#7620)
* Replace JsonParser with kotlinx.serialization.

* Remove wildcard import.

* Remove more usages of JsonParser.
2021-06-14 06:20:05 -04:00
FrozyPenguin ec3ed6206c
Fix japscan intercept url (#7191) 2021-05-24 07:03:05 -04:00
Abdennour Alem d2bf29c960
Fix japscan baseUrl (#7132)
* Fix japscan baseUrl

* Update build.gradle
2021-05-21 08:39:21 -04:00
arkon 50bf2a56e5
Update dependencies; drop Android 4.x support (#6742) 2021-04-28 15:38:05 -04:00
BayLee4 59ef23a023
Attempt to fix japscan extension (#6566) 2021-04-15 14:30:28 -04:00
BRAMILLE Sébastien 34d7ff8380
Add fallback on search to duckduckgo (#5630)
* Add fallback on search to duckduckgo

* Upgrade version
2021-02-05 08:03:00 -05:00
Aria Moradi 33f136d2ae
Fix Android Studio "Duplicate content roots" error (#5203)
* comply with #5214

* rm not needed AndroidManifest.xml

* [CI SKIP] add info about AndroidManifest.xml

* Update CONTRIBUTING.md

Co-authored-by: arkon <arkon@users.noreply.github.com>
2020-12-20 22:31:12 -05:00
arkon 8aa9b5ef1d Fix repo build
AGP 4.1.0 automatically aligns output APKs, so we just do a zipalign check rather than actually trying to align it.
cf. https://issuetracker.google.com/issues/162117652
2020-10-18 20:25:11 -04:00
LordUTF8 855aa18430
Last fix for the JapScan Thumbnails (#4517)
* Fix for thumbnails loading

* Increment Version

* Second fix for the JapScan Thumbnails

* Second fix for the JapScan Thumbnails

* Last fix for the JapScan Thumbnails

Co-authored-by: DF-Aces <johanbaker98gmail.com>
2020-10-08 17:57:07 -04:00
LordUTF8 ab9c57882b
Fix for thumbnails loading (#4467)
* Fix for thumbnails loading

* Increment Version

Co-authored-by: DF-Aces <johanbaker98gmail.com>
2020-09-30 23:03:45 -04:00
az4521 d119172f5b
number go up (#4448) 2020-09-27 14:25:49 -04:00
az4521 e96e9a627d
japscan didnt actually work, whoops (#4447)
* fuck sizurpp

* fix japscan completely

Co-authored-by: Rani Sargees <rani.sargees@gmail.com>
Co-authored-by: az4521 <az4521@mailinator.com>
2020-09-27 13:45:55 -04:00
az4521 910716b913
fuck sizurpp (#4439)
* fuck sizurpp

* update url

Co-authored-by: Rani Sargees <rani.sargees@gmail.com>
2020-09-27 08:28:50 -04:00
az4521 07f0073856
Removed Japscan (#4339)
Co-authored-by: az4521 <“az4521@users.noreply.github.com”>
2020-09-08 21:21:55 -04:00
arkon 023c26b4a0 Make "Tachiyomi" app name prefix implicit 2020-06-25 22:46:15 -04:00
arkon efc1877172
Move common app-provided dependencies to common.gradle (#3214) 2020-05-17 16:50:53 -04:00
TacoTheDank 99ee039d09
Correct a bunch of lints from "en" to "ja" (#3075) 2020-05-10 17:46:00 -04:00
arkon 020c2af006 Lint fixes 2020-04-25 10:29:23 -04:00
arkon efb9215f73 JapScan: use older version of JsonParser method for stable compatibility (fixes #2481) 2020-03-29 12:23:59 -04:00
happywillow0 e0bf25bd65
Japscan - Update Search (#2448)
Japscan - Update Search
2020-03-19 09:37:00 -04:00
morcefaster 98604a69cb
Japscan not loading images dirty fix (#2315) (#2404)
Japscan not loading images dirty fix (#2315)
2020-03-11 11:04:28 -04:00
happywillow0 1e3786d713
Add Search to JapScan (#2270)
Add Search to JapScan
2020-02-22 09:45:13 -05:00
happywillow0 bf7a47d32f
Japscan Browse via Filters (#2226)
* Japscan Search Workaround

* Update Japscan.kt

Refactor Popluar / Latest
Expand Filter
Remove Log

* Fix redundant English
2020-02-12 22:50:45 -05:00
happywillow0 96116dac10 Fix Japscan (#2128)
Fix Japscan
2020-01-26 00:22:42 -05:00
Mike cf9087506f Japscan search (#1688)
Japscan search
2019-10-22 07:22:38 -04:00
Mike 86cac8697b Japscan domain change (#1541)
Japscan domain change
2019-09-21 09:12:34 -04:00
Rublood f27da3e9cb Update scrambled images on webtoon (#1209)
Update scrambled images on webtoon
2019-06-17 16:38:21 -04:00