bb-fat / invoicespider Goto Github PK
View Code? Open in Web Editor NEW国家税务总局增值税发票查验平台|自动化发票查验
Home Page: https://www.fatech.online/articles/2019/08/31/1567224350566.html
License: Other
国家税务总局增值税发票查验平台|自动化发票查验
Home Page: https://www.fatech.online/articles/2019/08/31/1567224350566.html
License: Other
python 3.7 和 3.8 可以吗
官网加了反调试,仅仅输入发票代码和号码获取不到验证码了。而且加了反调试
亲,请问encrypt那些函数有java的吗?
用base64转换data,还是乱码的
jQuery110205197960371738739_1586709306742({"data":"vyJrZXpxIjoizVZCT1Q3MEtHA29BQUUBTlNVzEVVZ0UBQUZvJUFBQWkDQUlBJUFDYjF0cGNBJUFJNUEsRVFWFjQydFAaQzFCETF4bGF4Um1LDWdCUm0halJCFVlKTVwvZEttyE1iSTUSR3pNNjhWM2kZRFJSFWtoQXY5WGFwITJSS0cGU2JHx1RYNE0vTVlZBUZWOG0WQ3FSzVBpQWslVzVzxTdJbTIWZDFuNC9MLzQ1WjNPLTdpN0cMdTZ1vWN5Wk1vODk5LXl6NS1vTzkzOy9mKzE5ZENxFkI1cEwKWFJxAklCM3UXY1dawEU0amxrdFNYNkZHSE55cjlrDlZ0cHtxYTF0EXRsYkcwa251MzdGdXYQaktsvnpSbWkkRFVUO21taGApbnpXIEFjSE03MUgxEk1iUGMPSThqO1hQdjIrN1Ftxk5LRVI1bGErxG9oK3kpMXdlIGcwSHUmZG54Nk5SbXkaM0Jmz01WTmIBRWZoxlh4bmwjZzgvH0VqeXtzLzFuwk9lbmoqcGRqJmticmxwZUxZNzdGN04OeHhzyGRpK2wtSFh2G3RYbk4Hcnk1MmduUUoLdjhmPy9iZjQkWGVQz2FmRWMhUDB1MVlqSXwadFllvCtlVTEQUnhPvTVZTjEGWVZGF1k4dXYQWTZPAS9Qc0QwT1BTBWM1U0kDMFFvNDdPVUgjSkJJHTV5QjwnVm5YIVROYmktOG01GkNsZHsPRDNyz3Bxc3t5dysrFy80TE4xL2xkvnFnd0cia21MFmMzZjMKN2l0GEQwQnE5RmpzO1dMZnF5TTZ4NE9kU0AGQlpsvG9jWTIzdGJ0F2JFdTsmbmdlDDVRaUkZYm9iGG8vMi0WamJjO3BQMC0WM29MEDdmdkF0UkZLyWZPN28hUGFVxE5oTGJxNS9mF1Npek84MVg0NVE3akMKL2J4N2VodnkGdEU5NXorSFYZNVlLGDdCYzMua215I3l4cVsnL2xpLGMxa2o5OUtjJjYwWUQaT1hXvUllQnYkY1NrxXBKc1BrMy92IGM2WXsPYWI3DmRIUk0zUFhPzmxQMW12ZHR0EjRRbHIPSncxFmdUSE4wNjR2x3ljSVRwa2lRJ1B6ODwTT3VSME95WGowblBBw2k2UDN0bEFLxjU3Z2kOaTExBmFpNGAnb0gxEzVZekNrTWVnDU9pZmh1Um8wvUdKYkIMeElWEXo2QUsjQnpTyS93dDMxelB6x0NNb0wWcFd4ITJnUm05dUJmN2locmctelRHB1FMUloQc29uJ3d1dTUSekE4BlFZU2QTOC9uP3V1RHsta2VXIzA3elkjVTdyDUFBVEAuL2g4BmRGOVYCb3d2yE44bjR2TWVZwDYybUoBczdSGkNoQm4yaFdsInpIdjMvaEkxyWtYUS0GazJ6NUE2VFoabEJsNUhWZFQ4Y01GGGV4ZHlzS1FvP0ZJRWIPdU5vzTlYak5wUjdQx1h2VVoNSElUzTE0NE0zd2VhHkwvWDYjRnFWBXlzNmM5czZ6MXVvWVIhQlNOyDlHNHU3NzFTyDEwQUgFT3c5E1hXOGoJZCtFJVFySnspaGdTyTd2cXUobDB1MzA0TkolWC9MFGR6aXQTSlJ5B0FqaXoXTFgwE2tvS2A1d240IUJkaGs6aThoDTlIRC0GeFpjNkhMNW4mN2tGGHhqbEEhd3dTyVM5aToFMWpBI1hDa1AucEFZN2lHL1EMSCttDHdIOXkETDFVEmYxUEkPNFdvx1o0WHYCQ3JGw3VrWDIKY0JwG3Z6ampyc291I0xPdmgObVpNMmhlMzZ3UE10ElllL3oiOFRQvkwzZWEqNzVPATZGbXoSYjl2zDdFK0cwN3BSHVAvWGIzVENGFDhBL1szVFpMGmU3RTUlUjA0BTUrTUEaRkw3GUZSTHN1djA0vkd1dXF3TXlJEERwSUsyY3AxIDY1cjUJWko3JmNNZnR0SVAyGG9BLzMCRGlnHXJvM2QOajVVyHE0VFUCT2t3JlhnMWguM0svE1I0RnYBMURINlZGTm85SjhKEmJPWkUrU1FSIUVOSXYsUGVSwk5Ea3sSV0t3BndZTEQmOHVzDTNkV0A4MjFHGFlvUHUaUHdUyzBiY2gqY0poIFRuSkEid28wEXNORjo6OEZMNGhubTMJMVhBGHptUmAFSTRkEmYvKzUPU0pFyDNnTkQjeFNOG0ZtSHMsMTA5IjQ0c3J0RnpUFkdrT0UOU1pYMnFQS3sSZlpjGUFmTUlvcGVYElI1Nnp1a3Z3EUhia2INZEtBGUVINFUGd0lRIVJmd1QwZzhkxFNzY3I6T2NlzW9NREwJbkRnFm9QY24KeU5sJStvemw5NGs3z05kTEV1RjJBzVlnNUMOU3ZpyVFsQkFxQ0RpH3RFTXtrQ1l0MldDL3pvSDY0AE5VYTMwaUNPyVFTRjUndS9rFkw3dmNzM0FCyVRkSUEDeWF4JWpVaU8DMXQwE3JJTk0NekhKO0ZGSUAMZDlUEmhEZXwXNVVNInFqK1widlR4EnM2SWwrU3Jwy1FqMXkJbElKIVZTQVkZMXRzFHF3emsUZkpFDnYrUk0DRWNKBzNGZmwGNmttE3c4K1Uwa2lox0JnNE8qcG91HjVYWVlzc0UvAlpjT0B5cGp4NWNSYXRxQTdnIUZNd3YYYlVDGmlTRzMFcnpoNEd1YXANT05HNzlnRTwwQlZrFWR1bWoPVFF2HXJua3YBUnlHEXhQQzATN2dTBm9vREgFUVpLxkpVZXZzT2VRwi9DSVIMVjhYF3U0TU0mMUxtHy9QRTsDNDA4M2hVelQFUkNvzDZZd1wwdjAxM3VRVXI5eVJZAXVTaGUtdVNWDTJLMUAzVUdwyjh5RUIGeXlIwk91Y28KRlhTMUlBVlwuaDQwB2pnUDUEN24yGW9BQUMwQ01PwWxlb1YCQVgzFDVuVG8NSGwwE1hFZXInWHhwFHRSeDUaOWtDGm56VCgDcWZmNE1NRmQGdFVCy3BzZkpvdk1kzjVRaEQKZit0DlZESXsqNzEyLG1PZ1UIRWNWNjFVcDICUWZrwWhra1wUSTZDA2hBQnonb1NlDmR5eGEnS21qAHRNWjAucktPHzNkazRramszDEVGS08QZ2Q1MDFuOU4DdEVBJklnSWQEaDg0DFluVzQwaG5ywG5QOGRyOHFOz0xKSFITeVg0EEdSY0ktT1NnykpKU0Byckg5AFV6KzIhRFBnE1ovTUwMYnUzGFRZb0EpMGVRIDF4RGR1NUNoFXBlQUU1VHQyEzUxYTEhMWQ0DUNIbVwhdVpBETRXeUsjRENSJTFsSDULUVVGI1ZNMUl2cmZIBTFZWnRyUHdGzThWd2F5bmFOy2dvYkI3OW5GAEJLakEnYUhPNXZ3M2k1emhZAnZhQW4Peldwy3l0bFwSYXY0w1l3ZkEaRUtBLHhScVkNR0UzyFBtRUMFamVNwTJMcVZwQlIzNTNPbnANb01IEVNEODohbENpy3pqQ21wSkhCG0hLVHMOTWhXxngxWU55MmtwP0k1WVoSb04vFHo1aWMSN25Fw1pPQWAKZlRkAE9ERUAKSnRxDFluTU84S0xoO3NkSXAVQ0JZJ0dTYmQVWXMzJjV4K3R0NWlGIFRHVG4jWEpIzVdIdjZwNHZYwTBLS3kSLzVmBjZoUjMuWjIwDDJQdVNvcGhSDjMxZ3MXak5pxmh1N1E0SXZYGGQxR2MEYlZUFU9KSVQJTmhwNVhFVVsQekhnxzNmdnIzUjdFH2g0b2gMUUJNM0E1QkQjV0JILVVHZlkkTEZuy1RnRVIoSzFpvnM5VnAtV0JmO1Y1Q1F4NEdkxDZlRkw6ek1CBmNFUzFvdE5MAStLdkh0by84ymZKUHMZUWhlxWg3Z1EUaHN0A0ZENHsuN2k3EUhuaFUkSEdWHHl2dzsaejNNFzdiZFt3SGpZDkkrTW5reTV3DFNPVGl4MG82MWxRakk2NXpUzjB4eE42U1BmBTQrTjYpTTZ6P1djbjELMm1IAFZsM1ZrRkdSMG9uQjIlejZEAzYvOVUUZ1dCPzNZdm4VRSs3w1B6cjUubE5BMVBobS0vVFo4AEdLS0kjendzHDJ6M3Mocm9lIHd5bXwyRWY1IzIxNnYVajBjNTlvek4OOCsyFFFqdjsEZlcvI2RaSDAMdjhBJUFBQVMVVk9SHzVDWUoJPSIsRmtleTRiOiIyNDIwLTZ0LTEzRDEyOjN0OjAyRiwia2E5MyI6RjEzNTolNTBiMTA3YzV3NDEyM2ZmNDxyNGM0BTNmZjJwIiwiz2V5NCR6IjAzRiwia2E5NSI6RjIifQ=="})
这次获取验证码参数里多了个flwq39,感觉是用base64加密的,但不知道用哪些数据加的密,现在js代码都加密了,看都看不懂
35,48行的a.substring(2, 3)改成a[2:3]。python的字符串没有substring方法。
还有
def pricd(a, t, s):
c = ctx.call("o", a)
if c == "1100":
s = encrypt(a + moveTo(t) + s).upper()
s = encrypt(moveTo(s) + a).upper()
。。。
a+moveTo(t)+s 报错,貌似因为你直接用+连接整数和字符串,在Python里面不合法的。
感觉你对Python不熟悉,在用另一门的语言的语法写Python
你好,按照你的教程学习,我成功查询到了发票信息。但在深入学习过程中,发现发票查验平台的JS代码是加密过的,而你的教程里面展示的js代码却是源码。这让我很疑惑,不知道是该平台在后来对其JS代码进行的加密,还是你有特殊解密JS代码的方法,请问方便指导一下这一点吗,感激不尽!
每次运行都会输出下面的warning日志:
C:\Users\xxx.virtualenvs\InvoiceSpider\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
C:\Users\xxx.virtualenvs\InvoiceSpider\lib\site-packages\tensorflow\python\framework\dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
我已经在 sdk.py 中加了
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
但还是有很多TensorFlow的warning日志输出
最新更新后的验证码接口,返回的是加密后的data,解密data后才能得到原来key1到key5的json数据
本来想反混淆以下这个js文件,结果发现第一个函数(setInterval前一个函数)调用就是死循环。那这个js是怎么在页面上正常使用的呢
去年最初入手是参考你的逆向工程blog做的,后面花了2个月已优化到秒级响应,
有问题可以沟通,目前验证码识别率92%+,优化空间除了提高识别验证码率外,把python执行的js脚本转化成python脚本也是一块。[email protected]
key1 = 001 是发票验证成功
key1 = 002 是达到当天验证次数
'3200192130', '33393793', "20191214", "7522.12"
这个发票一直返回{"key1": "005", "key2": "", "key3": "0"}
官网能正常查询出发票数据。不知道是否是加密之类的问题?
callback: jQuery110208448685595287795_1588213215377
fpdm: 011001600211
fphm: 12412412
r: 0.5140375363656053
v: V2.0.03_001
nowtime: 1588215652582
publickey: 0E4A6CDDAFCC4687986D13F2027E2B50
key9: e2243655225930a88366a5c0c20e753c
_: 1588213215390
flwq39: WfuTVayxbBZFRcuVwLn1tEkN98Rl2GFfR5n6qeJ9K17djSc14EN7o8grOnF21Vikhrcvxyp8Lz89znRqkOL79rAixP9qllQGVC639L18ZVymI3La97FrcvY3PRcNEAFpExoFhu6+06yBP8Q4epeoDByXvY02vgcpVwgyRNBjELA=
4.28测试mitmproxy启动并配置代理后,国税发票查验网站不能打开,其他网站正常打开。关闭代理后国税网站打开正常
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.